Compare commits

...

263 Commits

Author SHA1 Message Date
367d80d846 Scheduled update 2024-07-31 17:57:29 +00:00
a6a1ab96c9 Scheduled update 2024-07-05 01:19:06 +00:00
2442170b40 Scheduled update 2024-07-05 00:19:06 +00:00
38fe5621f2 Scheduled update 2024-07-04 23:19:06 +00:00
c190ede8b6 Scheduled update 2024-07-04 22:19:06 +00:00
bfc3c5b605 Scheduled update 2024-07-04 21:19:06 +00:00
a88c29ce23 Scheduled update 2024-07-04 20:19:06 +00:00
7b6332b514 Scheduled update 2024-07-04 19:19:06 +00:00
fccf64441b Scheduled update 2024-07-04 18:19:06 +00:00
39722fc399 Scheduled update 2024-07-04 17:19:06 +00:00
34f7342957 Scheduled update 2024-07-04 16:19:06 +00:00
7ad6fb1be5 Scheduled update 2024-07-04 15:19:06 +00:00
1bd9d8fa1a Scheduled update 2024-07-04 14:19:06 +00:00
a7d1578ced Scheduled update 2024-07-04 13:19:06 +00:00
c94e72a309 Scheduled update 2024-07-04 12:19:06 +00:00
7b28cb4d6c Scheduled update 2024-07-04 11:19:06 +00:00
957f2f97fa Scheduled update 2024-07-04 10:19:06 +00:00
ccf32fcb48 Scheduled update 2024-07-04 09:19:06 +00:00
ca167ec694 Scheduled update 2024-07-04 08:19:06 +00:00
678829235f Scheduled update 2024-07-04 07:19:06 +00:00
8078e82cb6 Scheduled update 2024-07-04 06:19:06 +00:00
89c848e459 Scheduled update 2024-07-04 05:19:06 +00:00
c6dfd0c8eb Scheduled update 2024-07-04 04:19:06 +00:00
f0a59c3282 Scheduled update 2024-07-04 03:19:06 +00:00
598f44795a Scheduled update 2024-07-04 02:19:06 +00:00
05e2e4adc3 Scheduled update 2024-07-04 01:19:06 +00:00
dab39ddd1c Scheduled update 2024-07-04 00:19:06 +00:00
03b45b5129 Scheduled update 2024-07-03 23:19:06 +00:00
b171ca2018 Scheduled update 2024-07-03 22:19:06 +00:00
d6971db4c6 Scheduled update 2024-07-03 21:19:06 +00:00
f59b36756e Scheduled update 2024-07-03 20:19:06 +00:00
bd91c03dd5 Scheduled update 2024-07-03 19:19:06 +00:00
ac665e509a Scheduled update 2024-07-03 18:19:06 +00:00
17b97dc9d9 Scheduled update 2024-07-03 17:19:06 +00:00
67b412bff9 Scheduled update 2024-07-03 16:19:06 +00:00
8fafe56e2a Scheduled update 2024-07-03 15:19:06 +00:00
3c8d1cc8ad Scheduled update 2024-07-03 14:19:06 +00:00
4b65153d64 Scheduled update 2024-07-03 13:19:06 +00:00
6823e54822 Scheduled update 2024-07-03 12:19:06 +00:00
a50dee555c Scheduled update 2024-07-03 11:19:06 +00:00
80ac94f47c Scheduled update 2024-07-03 10:19:06 +00:00
398845a2c8 Scheduled update 2024-07-03 09:19:06 +00:00
1ab78de857 Scheduled update 2024-07-03 08:19:06 +00:00
32ded00d4b Scheduled update 2024-07-03 07:19:06 +00:00
b305d0ba2d Scheduled update 2024-07-03 06:19:06 +00:00
45ec521f80 Scheduled update 2024-07-03 05:19:06 +00:00
abfcf170f2 Scheduled update 2024-07-03 04:19:06 +00:00
4aee33cc40 Scheduled update 2024-07-03 03:19:06 +00:00
835fdd91a6 Scheduled update 2024-07-03 02:19:06 +00:00
ae896ddd4c Scheduled update 2024-07-03 01:19:06 +00:00
1b8ed8b27b Scheduled update 2024-07-03 00:19:06 +00:00
c2bc1fa098 Scheduled update 2024-07-02 23:19:06 +00:00
bee1c7e8be Scheduled update 2024-07-02 22:19:06 +00:00
c1bb4f83b4 Scheduled update 2024-07-02 21:19:06 +00:00
f943a1dea3 Scheduled update 2024-07-02 20:19:06 +00:00
0d607f9f08 Scheduled update 2024-07-02 19:19:06 +00:00
1b2069eebf Scheduled update 2024-07-02 18:19:06 +00:00
4e7224f5e8 Scheduled update 2024-07-02 17:19:06 +00:00
38b1db9fdc Scheduled update 2024-07-02 16:19:06 +00:00
6d1733ff2b Scheduled update 2024-07-02 15:19:06 +00:00
65d2c91115 Scheduled update 2024-07-02 14:19:06 +00:00
700fc9f9c1 Scheduled update 2024-07-02 13:19:06 +00:00
4c63890d2a Scheduled update 2024-07-02 12:19:06 +00:00
f5f9b2a190 Scheduled update 2024-07-02 11:19:06 +00:00
1dd7da92b6 Scheduled update 2024-07-02 10:19:06 +00:00
6505823b89 Scheduled update 2024-07-02 09:19:06 +00:00
7425156a1d Scheduled update 2024-07-02 08:19:06 +00:00
6794622d00 Scheduled update 2024-07-02 07:19:06 +00:00
d43f4c7af1 Scheduled update 2024-07-02 06:19:06 +00:00
3e5100e0fc Scheduled update 2024-07-02 05:19:06 +00:00
0e0a46d875 Scheduled update 2024-07-02 04:19:06 +00:00
020b31c472 Scheduled update 2024-07-02 03:19:06 +00:00
1f334aeb41 Scheduled update 2024-07-02 02:19:06 +00:00
cd841658ec Scheduled update 2024-07-02 01:19:06 +00:00
ac2bd66439 Scheduled update 2024-06-20 19:49:02 +00:00
79a2fa0b6e Scheduled update 2024-06-20 18:49:02 +00:00
6946b9724f Scheduled update 2024-06-20 17:49:02 +00:00
d1656b7182 Scheduled update 2024-06-20 16:49:02 +00:00
2b164eba6c Scheduled update 2024-06-20 15:49:02 +00:00
a6731e8c8d Scheduled update 2024-06-20 14:49:02 +00:00
20844bc19a Scheduled update 2024-06-20 13:49:02 +00:00
affe67a889 Scheduled update 2024-05-01 15:05:23 +00:00
f3136fb2cb Scheduled update 2024-05-01 14:05:23 +00:00
242e4fff2e Scheduled update 2024-05-01 13:05:23 +00:00
f4862641f5 Scheduled update 2024-05-01 12:05:23 +00:00
039ccb92e5 Scheduled update 2024-05-01 11:05:23 +00:00
0d28111346 Scheduled update 2024-05-01 10:05:23 +00:00
fcb20e8c7e Scheduled update 2024-05-01 09:05:23 +00:00
51d5d43674 Scheduled update 2024-05-01 08:05:23 +00:00
74b5bf977c Scheduled update 2024-05-01 07:05:23 +00:00
a22740793f Scheduled update 2024-05-01 06:05:23 +00:00
275276606f Scheduled update 2024-05-01 05:05:23 +00:00
ccf950c849 Scheduled update 2024-05-01 04:05:23 +00:00
388c805ac7 Scheduled update 2024-05-01 03:05:23 +00:00
71f8e853ea Scheduled update 2024-05-01 02:05:23 +00:00
7a3d871178 Scheduled update 2024-05-01 01:05:23 +00:00
dc2c6e1f7c Scheduled update 2024-05-01 00:05:23 +00:00
4fa16e8bec Scheduled update 2024-04-30 23:05:23 +00:00
1465b1ac6a Scheduled update 2024-04-30 22:05:23 +00:00
cfe69fef74 Scheduled update 2024-04-30 21:05:23 +00:00
561319f448 Scheduled update 2024-04-30 20:05:23 +00:00
20fbbef775 Scheduled update 2024-04-30 19:05:23 +00:00
3c14ad11cb Scheduled update 2024-04-30 18:05:23 +00:00
d62c45962d Scheduled update 2024-04-30 17:05:23 +00:00
4ac1632c48 Scheduled update 2024-04-30 16:05:23 +00:00
6f54afaf80 Scheduled update 2024-04-30 15:05:23 +00:00
191f42ea8e Scheduled update 2024-04-30 14:05:23 +00:00
6068b2ba2c Scheduled update 2024-04-30 13:05:23 +00:00
4945338be6 Scheduled update 2024-04-30 12:05:23 +00:00
103d6bb2fc Scheduled update 2024-04-30 11:05:23 +00:00
f8f5c78f2c Scheduled update 2024-04-30 10:05:23 +00:00
d5aa6d26a0 Scheduled update 2024-04-30 09:05:23 +00:00
5aa6363bb9 Scheduled update 2024-04-30 08:05:23 +00:00
16a8646085 Scheduled update 2024-04-30 07:05:23 +00:00
3901f2f947 Scheduled update 2024-04-30 06:05:23 +00:00
7bf8d6ef3d Scheduled update 2024-04-30 05:05:23 +00:00
c2dbc64dc4 Scheduled update 2024-04-30 04:05:23 +00:00
d9fd2731f1 Scheduled update 2024-04-30 03:05:23 +00:00
464ebf0132 Scheduled update 2024-04-30 02:05:23 +00:00
879e187b0f Scheduled update 2024-04-30 01:05:23 +00:00
546fdbf8c3 Scheduled update 2024-04-30 00:05:23 +00:00
9a79d1324a Scheduled update 2024-04-29 23:05:24 +00:00
c6347beece Scheduled update 2024-04-29 22:05:23 +00:00
Lee
bb2c72c574 Merge pull request 'Configure Renovate' (#1) from renovate/configure into master
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 40s
Reviewed-on: #1
2024-04-29 22:01:56 +00:00
3f2b092e88 Add renovate.json 2024-04-29 22:01:21 +00:00
b4666ddf14 Scheduled update 2024-04-29 21:06:15 +00:00
176ecdb34a Scheduled update 2024-04-29 20:06:15 +00:00
ec7a9c5c6c Scheduled update 2024-04-29 19:06:15 +00:00
4356af0368 Scheduled update 2024-04-29 18:06:15 +00:00
0baffb48f5 Scheduled update 2024-04-29 17:06:15 +00:00
4cc5230850 Scheduled update 2024-04-29 16:06:15 +00:00
ba29d73636 Scheduled update 2024-04-29 15:06:15 +00:00
61d3fc4695 Scheduled update 2024-04-29 14:06:15 +00:00
69df5d4249 Scheduled update 2024-04-29 13:06:15 +00:00
e7733bbe62 Scheduled update 2024-04-29 12:06:15 +00:00
c314166571 Scheduled update 2024-04-29 11:06:15 +00:00
58651f7626 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 12:02:39 +01:00
7c6d9ddc59 cleanup 2024-04-29 12:02:33 +01:00
f46d78d3ec Scheduled update 2024-04-29 10:56:24 +00:00
4098f91bc0 Scheduled update 2024-04-29 09:56:24 +00:00
c5e12f5dd4 Scheduled update 2024-04-29 08:56:24 +00:00
4cd6d8b1ac Scheduled update 2024-04-29 07:56:24 +00:00
317a6be545 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
# Conflicts:
#	README.md
2024-04-29 08:52:50 +01:00
ee094be2eb update user that pushes the commits 2024-04-29 08:52:37 +01:00
6bff73fd72 Scheduled update 2024-04-29 07:44:07 +00:00
9060cf8929 Scheduled update 2024-04-29 06:44:07 +00:00
32e364a38c Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 07:40:30 +01:00
88b62cc225 update logging 2024-04-29 07:40:25 +01:00
438abb5591 Scheduled update 2024-04-29 06:37:06 +00:00
aeec428d48 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 07:33:37 +01:00
a58edf7961 update readme 2024-04-29 07:33:33 +01:00
9f11aa362a Scheduled update 2024-04-29 06:28:21 +00:00
3f050ae976 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 07:24:51 +01:00
6b7bca3b90 cleanup 2024-04-29 07:24:47 +01:00
e7932b8025 Scheduled update 2024-04-29 06:20:44 +00:00
0a56bef53d Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 42s
# Conflicts:
#	README.md
2024-04-29 07:17:03 +01:00
6eb13e18eb maybe fix new server count? 2024-04-29 07:16:51 +01:00
2bbc6c6011 Scheduled update 2024-04-29 06:12:48 +00:00
9babf45272 fix new server count
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 07:09:19 +01:00
2a47e9eca9 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 40s
2024-04-29 07:05:55 +01:00
991aad6502 use new servers not total for the log 2024-04-29 07:05:50 +01:00
616603a5b4 Scheduled update 2024-04-29 06:03:51 +00:00
d439a7936a oopsie
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 49s
2024-04-29 07:00:15 +01:00
e250eb4a50 oopsie
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 38s
2024-04-29 06:59:15 +01:00
3e983b0886 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 40s
2024-04-29 06:57:29 +01:00
Lee
49646b5e88 revert 1bf59d38dbbaee6a5565cb60f718d37c522d0472
revert Scheduled update
2024-04-29 05:57:26 +00:00
2789603657 oopsie 2024-04-29 06:57:24 +01:00
1bf59d38db Scheduled update 2024-04-29 05:53:28 +00:00
e350b039d2 Merge remote-tracking branch 'origin/master'
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 38s
2024-04-29 06:53:00 +01:00
80daf3899a fix the fix 2024-04-29 06:52:52 +01:00
Lee
142ed5f86e revert d72cfa69bb1fd0514b363d69aeed9ed3f28c1a6c
revert Scheduled update
2024-04-29 05:52:42 +00:00
d72cfa69bb Scheduled update 2024-04-29 05:51:16 +00:00
254e960447 WORKKKKKKKKKKKK
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 38s
2024-04-29 06:50:47 +01:00
387c1b1f0c maybe this will work?
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 39s
2024-04-29 06:49:12 +01:00
123b01d1d0 pls work
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 38s
2024-04-29 06:45:30 +01:00
a9f3f74880 pls work
All checks were successful
Deploy to Dokku / docker (ubuntu-latest) (push) Successful in 41s
2024-04-29 06:43:25 +01:00
9140dbc838 pls work
Some checks failed
Deploy to Dokku / docker (ubuntu-latest) (push) Failing after 9s
2024-04-29 06:42:54 +01:00
e754c0a5f1 Merge remote-tracking branch 'origin/master'
Some checks failed
Deploy to Dokku / docker (ubuntu-latest) (push) Failing after 52s
2024-04-29 06:39:38 +01:00
9eaca049b7 untested, might work, might not 2024-04-29 06:39:32 +01:00
c49961b92d Scheduled update 2024-04-29 05:33:34 +00:00
5511d1198d Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 05:03:35 +00:00
bc99e9cd0e Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m18s
2024-04-29 04:33:35 +00:00
c50e10fb8a Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 04:03:34 +00:00
1cdc936d9d Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 03:33:35 +00:00
590de72807 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 03:03:34 +00:00
0c2aae0c70 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 02:33:35 +00:00
f86ec987b8 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 02:03:34 +00:00
6766a38bc7 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 01:33:34 +00:00
540b1cce2a Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 01:03:35 +00:00
df0ae55173 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 00:33:34 +00:00
c4548ab896 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m16s
2024-04-29 00:18:10 +00:00
33353845df Merge remote-tracking branch 'origin/master'
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m21s
2024-04-29 01:14:47 +01:00
4dbea283ab use dns to lookup the servers 2024-04-29 01:14:41 +01:00
6728b47e1c Scheduled update 2024-04-29 00:12:39 +00:00
e0ddf6c4bf fix
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 3m17s
2024-04-29 01:01:44 +01:00
74c2c89385 Scheduled update 2024-04-29 00:01:12 +00:00
54db9d441d Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 55s
2024-04-28 23:00:36 +00:00
85ff8d6b02 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 19s
2024-04-28 22:00:33 +00:00
fe9e213d95 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 21:00:34 +00:00
d90923a87f Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 20:00:34 +00:00
0f82b63aed Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 19:00:35 +00:00
0eed3836a3 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 18:00:37 +00:00
f8f8234860 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 22s
2024-04-28 17:00:34 +00:00
4bf18b2a6b Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 16:00:33 +00:00
38c1e87856 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 15:00:34 +00:00
a9714edde0 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 14:00:35 +00:00
7bad6904a4 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 19s
2024-04-28 13:00:35 +00:00
c41ab02d7d Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 12:00:34 +00:00
24287fe27e Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 11:00:34 +00:00
9d3d367ba6 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 10:00:33 +00:00
fe3f449c9e Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 09:00:34 +00:00
468595bdda Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 08:00:33 +00:00
e9b27f2727 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 07:00:35 +00:00
87a5b6cca1 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 06:00:34 +00:00
38ce19b527 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 05:00:34 +00:00
5db350e419 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 04:00:33 +00:00
219fa775fb Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 03:00:33 +00:00
f1c3d016e3 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 02:00:34 +00:00
461e74449f Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-28 01:00:33 +00:00
0930ebd37e Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-28 00:01:10 +00:00
0b7da61a89 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 54s
2024-04-27 23:00:35 +00:00
f354da035c Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-27 22:00:34 +00:00
1353f579fe Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-27 21:00:33 +00:00
a8886de801 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 20:00:33 +00:00
678da17139 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 19:18:03 +00:00
Lee
12cd2cdb5b Update .gitea/workflows/fetch-new.yml
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 19:17:47 +00:00
acda1e20ad Scheduled update 2024-04-27 19:15:32 +00:00
39cbbd5035 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 19:10:33 +00:00
e37def7f71 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 19:05:33 +00:00
67fe068e15 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 19:00:33 +00:00
d48030e2fe Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 18:55:32 +00:00
5c932cdab9 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 18:54:12 +00:00
Lee
db02375b6e Update .gitea/workflows/fetch-new.yml
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 18:53:58 +00:00
d96c3d95cf Scheduled update 2024-04-27 18:00:33 +00:00
c0d394ccfb Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 17:00:34 +00:00
a266bd9a94 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 16:00:34 +00:00
610a092353 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 15:00:34 +00:00
0d7e67b4b5 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 14:00:34 +00:00
d6a9f39f32 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-27 13:00:33 +00:00
887ca5ea8f Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 12:00:36 +00:00
dec889deca Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 19s
2024-04-27 11:00:33 +00:00
328038facb Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 10:00:35 +00:00
b20c3f68c9 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 17s
2024-04-27 09:00:33 +00:00
f293d74a85 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 08:00:33 +00:00
0bb74087ab Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 07:49:40 +00:00
abe03a9b7b Merge remote-tracking branch 'origin/master'
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 20s
2024-04-27 08:49:22 +01:00
9ee1999bec fix last seen 2024-04-27 08:49:17 +01:00
332fb1821b Scheduled update 2024-04-27 07:00:34 +00:00
311c7d1e16 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 06:00:34 +00:00
0b32953424 Scheduled update
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 05:27:28 +00:00
35eda54647 cleanup imports
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 06:27:09 +01:00
b8f225dabf Scheduled update 2024-04-27 05:25:52 +00:00
71a78696ba Merge remote-tracking branch 'origin/master'
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 14s
2024-04-27 06:25:36 +01:00
e5543a9ab9 fix number format 2024-04-27 06:25:31 +01:00
b9a1e0bd3a Scheduled update 2024-04-27 05:25:16 +00:00
0b88b0ab34 add region count and format the numbers
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 06:24:56 +01:00
4bffef5254 Scheduled update 2024-04-27 05:19:04 +00:00
601dc3a723 update shield colors
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 16s
2024-04-27 06:18:44 +01:00
26be41582f Scheduled update 2024-04-27 05:17:28 +00:00
Lee
f5fe55db6c Update src/main/resources/README.md
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 05:17:14 +00:00
f3c889ad8b Scheduled update 2024-04-27 05:16:11 +00:00
ca598de2ad Merge remote-tracking branch 'origin/master'
All checks were successful
Fetch new Pia Servers / docker (ubuntu-latest, 2.44.0, 17, 3.8.5) (push) Successful in 15s
2024-04-27 06:15:44 +01:00
cec65d42f2 add last updated text 2024-04-27 06:15:39 +01:00
15 changed files with 88724 additions and 6137 deletions

32
.gitea/workflows/ci.yml Normal file
View File

@ -0,0 +1,32 @@
name: Deploy to Dokku
on:
push:
branches: ["master"]
paths-ignore:
- .gitignore
- README.md
- LICENSE
- servers.json
jobs:
docker:
strategy:
matrix:
arch: ["ubuntu-latest"]
runs-on: ${{ matrix.arch }}
# Steps to run
steps:
# Checkout the repo
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
# Deploy to Dokku
- name: Push to dokku
uses: dokku/github-action@master
with:
git_remote_url: "ssh://dokku@10.0.50.65:22/pia-servers"
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}

View File

@ -1,52 +0,0 @@
name: Fetch new Pia Servers
on:
schedule:
- cron: "@hourly"
push:
branches: ["master"]
paths-ignore:
- .gitignore
- README.md
- LICENSE
- servers.json
jobs:
docker:
strategy:
matrix:
arch: ["ubuntu-latest"]
git-version: ["2.44.0"]
java-version: ["17"]
maven-version: ["3.8.5"]
runs-on: ${{ matrix.arch }}
# Steps to run
steps:
# Checkout the repo
- name: Checkout
uses: actions/checkout@v4
# Setup Java and Maven
- name: Set up JDK and Maven
uses: s4u/setup-maven-action@v1.12.0
with:
java-version: ${{ matrix.java-version }}
distribution: "zulu"
maven-version: ${{ matrix.maven-version }}
- name: Build PIA Servers
run: mvn clean package -T 2C -q
- name: Fetch new PIA servers
run: java -jar target/PIA-Servers.jar
- name: Commit and push changes
run: |
git config --global user.email "liam+pia-servers-ci@fascinated.cc"
git config --global user.name "PIA Servers CI"
git add servers.json
git add README.md
git commit -m "Scheduled update"
git push https://pia-servers-ci:${{ secrets.AUTH_TOKEN }}@git.fascinated.cc/Fascinated/PIA-Servers

32
Dockerfile Normal file
View File

@ -0,0 +1,32 @@
# Stage 1: Build the application
FROM maven:3.9.6-eclipse-temurin-17-alpine AS builder
# Set the working directory
WORKDIR /home/container
# Copy the current directory contents into the container at /home/container
COPY . .
# Build the jar
RUN mvn package -q -Dmaven.test.skip -DskipTests -T2C
# Stage 2: Create the final lightweight image
FROM eclipse-temurin:17.0.11_9-jre-focal
# Install Git
RUN apt-get update && apt-get install -y git
# Set the app to be in production mode
ENV ENVIRONMENT=production
# Set the working directory
WORKDIR /home/container
# Copy the built jar file from the builder stage
COPY --from=builder /home/container/target/PIA-Servers.jar .
# Copy the old servers.json file
COPY --from=builder /home/container/servers.json .
# Run the jar file
CMD java -jar PIA-Servers.jar -Djava.awt.headless=true

201
README.md
View File

@ -1,106 +1,109 @@
# PIA Server List
![Servers](https://img.shields.io/badge/servers-1746-brightgreen) ![Last update](https://img.shields.io/badge/Sat_Apr_27_05:13:20_GMT_2024-brightgreen)
![Servers](https://img.shields.io/badge/servers-18,240-blue)
![Regions](https://img.shields.io/badge/regions-97-blue)
![Last update](https://img.shields.io/badge/last_updated-Wed_Jul_31_17:54:31_UTC_2024-blue)
This is a list of the OpenVPN servers provided by Private Internet Access (PIA). The list is updated hourly.
This is a list of the OpenVPN servers provided by Private Internet Access (PIA). The list is updated hourly. </br>
Servers that have not been active in the last 2 weeks will be automatically removed.
## Servers
| Region | Servers |
|----------------------|---------|
| japan | 18 |
| albania | 18 |
| poland | 18 |
| us_florida | 18 |
| andorra | 18 |
| venezuela | 18 |
| moldova | 18 |
| estonia | 18 |
| ca_vancouver | 18 |
| sweden | 18 |
| united_arab_emirates | 18 |
| us_seattle | 18 |
| saudi_arabia | 18 |
| philippines | 18 |
| us_las_vegas | 18 |
| us_east | 18 |
| de_berlin | 18 |
| uk_manchester | 18 |
| switzerland | 18 |
| armenia | 18 |
| vietnam | 18 |
| turkey | 18 |
| ukraine | 18 |
| austria | 18 |
| spain | 18 |
| algeria | 18 |
| portugal | 18 |
| cambodia | 18 |
| lithuania | 18 |
| monaco | 18 |
| hungary | 18 |
| greenland | 18 |
| panama | 18 |
| greece | 18 |
| us_california | 18 |
| luxembourg | 18 |
| mongolia | 18 |
| us_west | 18 |
| cyprus | 18 |
| italy | 18 |
| finland | 18 |
| nigeria | 18 |
| hong_kong | 18 |
| singapore | 18 |
| mexico | 18 |
| us_denver | 18 |
| bahamas | 18 |
| norway | 18 |
| au_perth | 18 |
| bulgaria | 18 |
| ca_toronto | 18 |
| us_new_york | 18 |
| uk_london | 18 |
| macao | 18 |
| georgia | 18 |
| argentina | 18 |
| liechtenstein | 18 |
| france | 18 |
| serbia | 18 |
| slovakia | 18 |
| us_chicago | 18 |
| belgium | 18 |
| us_washington_dc | 18 |
| netherlands | 18 |
| isle_of_man | 18 |
| taiwan | 18 |
| sri_lanka | 18 |
| czech_republic | 18 |
| morocco | 18 |
| us_texas | 18 |
| uk_southampton | 18 |
| brazil | 18 |
| de_frankfurt | 18 |
| romania | 18 |
| india | 18 |
| us_silicon_valley | 18 |
| au_sydney | 18 |
| denmark | 18 |
| au_melbourne | 18 |
| ca_ontario | 18 |
| latvia | 18 |
| kazakhstan | 18 |
| new_zealand | 18 |
| us_houston | 18 |
| south_africa | 18 |
| egypt | 18 |
| malta | 18 |
| iceland | 18 |
| macedonia | 18 |
| ca_montreal | 18 |
| montenegro | 18 |
| qatar | 18 |
| china | 18 |
| israel | 18 |
| bangladesh | 18 |
| us_atlanta | 18 |
| ireland | 18 |
| ca_montreal | 816 |
| netherlands | 811 |
| us_texas | 708 |
| us_chicago | 702 |
| ca_toronto | 643 |
| us_silicon_valley | 601 |
| us_washington_dc | 589 |
| us_atlanta | 565 |
| us_west | 559 |
| ca_vancouver | 547 |
| us_las_vegas | 542 |
| us_new_york | 541 |
| us_east | 536 |
| uk_london | 533 |
| us_california | 526 |
| us_florida | 496 |
| us_seattle | 496 |
| ca_ontario | 430 |
| au_melbourne | 426 |
| switzerland | 420 |
| de_frankfurt | 417 |
| us_houston | 384 |
| au_sydney | 355 |
| uk_southampton | 318 |
| japan | 308 |
| de_berlin | 261 |
| us_denver | 231 |
| uk_manchester | 224 |
| singapore | 218 |
| france | 202 |
| sweden | 192 |
| au_perth | 183 |
| new_zealand | 183 |
| mexico | 139 |
| ireland | 132 |
| romania | 120 |
| estonia | 117 |
| norway | 112 |
| belgium | 102 |
| israel | 100 |
| spain | 99 |
| denmark | 96 |
| czech_republic | 94 |
| italy | 87 |
| finland | 84 |
| bahamas | 78 |
| argentina | 75 |
| austria | 71 |
| panama | 71 |
| brazil | 69 |
| poland | 64 |
| luxembourg | 62 |
| latvia | 60 |
| ukraine | 59 |
| india | 59 |
| lithuania | 56 |
| greenland | 56 |
| turkey | 52 |
| slovakia | 52 |
| andorra | 48 |
| vietnam | 46 |
| taiwan | 46 |
| venezuela | 45 |
| greece | 45 |
| portugal | 43 |
| united_arab_emirates | 38 |
| china | 38 |
| malta | 37 |
| albania | 36 |
| philippines | 36 |
| algeria | 36 |
| qatar | 33 |
| bangladesh | 31 |
| hungary | 30 |
| liechtenstein | 29 |
| isle_of_man | 29 |
| saudi_arabia | 28 |
| bulgaria | 28 |
| south_africa | 28 |
| macao | 26 |
| montenegro | 26 |
| nigeria | 25 |
| moldova | 24 |
| cambodia | 24 |
| cyprus | 24 |
| morocco | 24 |
| egypt | 24 |
| iceland | 24 |
| kazakhstan | 23 |
| macedonia | 23 |
| monaco | 22 |
| georgia | 22 |
| hong_kong | 20 |
| serbia | 15 |
| armenia | 12 |
| mongolia | 12 |
| sri_lanka | 11 |

17
pom.xml
View File

@ -68,6 +68,15 @@
</plugins>
</build>
<!-- Repos -->
<repositories>
<!-- Jitpack - Used for dnsjava -->
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<!-- Libraries -->
<dependency>
@ -83,6 +92,14 @@
<scope>compile</scope>
</dependency>
<!-- DNS -->
<dependency>
<groupId>com.github.dnsjava</groupId>
<artifactId>dnsjava</artifactId>
<version>v3.5.2</version>
<scope>compile</scope>
</dependency>
<!-- Archive Utilities -->
<dependency>
<groupId>org.codehaus.plexus</groupId>

6
renovate.json Normal file
View File

@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>Fascinated/renovate-config"
]
}

94282
servers.json

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,6 @@
package cc.fascinated.piaservers;
import cc.fascinated.piaservers.pia.PiaManager;
import cc.fascinated.piaservers.readme.ReadMeManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import lombok.SneakyThrows;
@ -14,6 +13,5 @@ public class Main {
@SneakyThrows
public static void main(String[] args) {
new PiaManager();
new ReadMeManager();
}
}

View File

@ -0,0 +1,13 @@
package cc.fascinated.piaservers.common;
public class Config {
/**
* Are we in production?
*
* @return If we are in production
*/
public static boolean isProduction() {
return System.getenv().containsKey("ENVIRONMENT") && System.getenv("ENVIRONMENT").equals("production");
}
}

View File

@ -0,0 +1,55 @@
package cc.fascinated.piaservers.common;
import java.nio.file.Path;
public class GitUtils {
/**
* Commit files to git
*
* @param message The commit message
* @param files The files to commit
*/
public static void commitFiles(String message, Path... files) {
System.out.println("Committing files");
if (Config.isProduction()) {
runCommand("git", "config", "--global", "user.email", "fascinated-helper@fascinated.cc");
runCommand("git", "config", "--global", "user.name", "Fascinated's Helper");
for (Path file : files) {
runCommand("git", "add", file.toAbsolutePath().toString());
}
runCommand("git", "commit", "-m", message);
runCommand("git", "push", "https://fascinated-helper:%s@git.fascinated.cc/Fascinated/PIA-Servers".formatted(System.getenv("AUTH_TOKEN")));
}
}
/**
* Clone the repository
*/
public static void cloneRepo() {
if (Config.isProduction()) {
System.out.println("Cloning repository");
runCommand("git", "clone", "https://git.fascinated.cc/Fascinated/PIA-Servers.git");
runCommand("mv", "PIA-Servers/.git", ".");
runCommand("rm", "-rf", "PIA-Servers");
runCommand("git", "pull"); // Pull the latest changes
}
}
/**
* Run a system command
*
* @param args The command to run (with arguments)
*/
private static void runCommand(String... args) {
ProcessBuilder processBuilder = new ProcessBuilder(args);
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
try {
Process process = processBuilder.start();
process.waitFor();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -1,15 +1,19 @@
package cc.fascinated.piaservers.model;
import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import java.util.Date;
@AllArgsConstructor @Getter
@AllArgsConstructor @Getter @Setter
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
public class PiaServer {
/**
* The IP of this server.
*/
@EqualsAndHashCode.Include
private final String ip;
/**

View File

@ -1,17 +0,0 @@
package cc.fascinated.piaservers.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor @Getter
public class PiaServerToken {
/**
* The hostname for this server.
*/
private final String hostname;
/**
* The region this server is in.
*/
private final String region;
}

View File

@ -1,124 +1,142 @@
package cc.fascinated.piaservers.pia;
import cc.fascinated.piaservers.Main;
import cc.fascinated.piaservers.common.GitUtils;
import cc.fascinated.piaservers.model.PiaServer;
import cc.fascinated.piaservers.model.PiaServerToken;
import cc.fascinated.piaservers.readme.ReadMeManager;
import com.google.gson.reflect.TypeToken;
import lombok.SneakyThrows;
import org.codehaus.plexus.archiver.zip.ZipUnArchiver;
import org.xbill.DNS.Record;
import org.xbill.DNS.*;
import java.io.File;
import java.net.InetAddress;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class PiaManager {
private static final HttpClient HTTP_CLIENT = HttpClient.newHttpClient();
private static final String PIA_OPENVPN_CONFIGS_URL = "https://www.privateinternetaccess.com/openvpn/openvpn.zip";
private static final long REMOVAL_THRESHOLD = TimeUnit.DAYS.toMicros(14); // 2 weeks
public static List<PiaServer> SERVERS = new ArrayList<>();
public static Set<PiaServer> SERVERS = new HashSet<>();
private static Path README_PATH;
@SneakyThrows
public PiaManager() {
File serversFile = new File("servers.json");
if (!serversFile.exists()) {
System.out.println("serversFile.json does not exist, creating...");
System.out.println("The servers file doesn't exist, creating it...");
serversFile.createNewFile();
}
List<PiaServerToken> piaDomain = getPiaDomains();
System.out.println("Found " + piaDomain.size() + " pia domains");
// Load the serversFile from the file
SERVERS = Main.GSON.fromJson(Files.readString(serversFile.toPath()), new TypeToken<List<PiaServer>>() {}.getType());
SERVERS = Main.GSON.fromJson(Files.readString(serversFile.toPath()), new TypeToken<Set<PiaServer>>() {}.getType());
if (SERVERS == null) {
SERVERS = new ArrayList<>();
SERVERS = new HashSet<>();
}
List<PiaServer> toRemove = new ArrayList<>();
System.out.printf("Loaded %s servers from the file%n", SERVERS.size());
System.out.println("Removing old servers...");
// Get the servers that need to be removed
for (PiaServer server : SERVERS) {
if (server.getLastSeen().getTime() < System.currentTimeMillis() - REMOVAL_THRESHOLD) {
toRemove.add(server);
// Set the DNS resolver to Cloudflare
Lookup.setDefaultResolver(new SimpleResolver("1.1.1.1"));
GitUtils.cloneRepo(); // Clone the repository
// Update the servers every 5 minutes
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
updateServers(serversFile); // Update the servers
README_PATH = ReadMeManager.updateReadme(); // Update the README.md
}
}, 0, TimeUnit.MINUTES.toMillis(5));
// Commit the files every hour
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
GitUtils.commitFiles("Scheduled update", serversFile.toPath(), README_PATH); // Commit the files
}
SERVERS.removeAll(toRemove); // Remove the servers
System.out.printf("Removed %s old servers\n", toRemove.size());
}, TimeUnit.MINUTES.toMillis(3), TimeUnit.HOURS.toMillis(1));
}
@SneakyThrows
public static void updateServers(File serversFile) {
List<PiaServer> servers = getPiaServers();
// Remove the servers that haven't been active in 2 weeks
int before = SERVERS.size();
SERVERS.removeIf(server -> System.currentTimeMillis() - server.getLastSeen().getTime() > REMOVAL_THRESHOLD);
System.out.printf("Removed %s servers that haven't been active in 2 weeks%n", before - SERVERS.size());
// Add the new servers to the list
for (PiaServerToken serverToken : piaDomain) {
InetAddress address = InetAddress.getByName(serverToken.getHostname());
int newServers = 0;
for (PiaServer piaServer : servers) {
boolean newServer = SERVERS.stream().noneMatch(server -> server.getIp().equals(piaServer.getIp()));
if (newServer) {
newServers++;
}
// Add the server to the list
SERVERS.add(new PiaServer(address.getHostAddress(), serverToken.getRegion(), new Date()));
SERVERS.add(piaServer);
}
// Save the servers to the file
Files.writeString(serversFile.toPath(), Main.GSON.toJson(SERVERS));
System.out.printf("Wrote %s servers to the file\n", SERVERS.size());
System.out.printf("Wrote %s servers to the file (+%s new)%n", SERVERS.size(), newServers);
}
@SneakyThrows
private static List<PiaServerToken> getPiaDomains() {
private static List<PiaServer> getPiaServers() {
long start = System.currentTimeMillis();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(PIA_OPENVPN_CONFIGS_URL))
.GET()
.build();
// Send the request and get the response
HttpResponse<Path> response = HTTP_CLIENT.send(request, HttpResponse.BodyHandlers.ofFile(Files.createTempFile("openvpn", ".zip")));
if (response.statusCode() != 200) {
System.out.println("Failed to get the PIA OpenVPN configs, status code: " + response.statusCode());
System.exit(1);
throw new IOException("Failed to get the PIA OpenVPN configs, status code: " + response.statusCode());
}
System.out.printf("Downloaded the OpenVPN configs in %sms%n", System.currentTimeMillis() - start);
Path downloadedFile = response.body();
File tempDir = Files.createTempDirectory("openvpn").toFile();
ZipUnArchiver unArchiver = new ZipUnArchiver();
// Extract the downloaded file
unArchiver.setSourceFile(downloadedFile.toFile());
unArchiver.setDestDirectory(tempDir);
unArchiver.extract();
// Get the extracted files
File[] files = tempDir.listFiles();
if (files == null || files.length == 0) {
System.out.println("Failed to extract the OpenVPN configs");
System.exit(1);
throw new IOException("Failed to extract the OpenVPN configs");
}
// Search for the server domains
List<PiaServerToken> domains = new ArrayList<>();
List<PiaServer> servers = new ArrayList<>();
for (File file : files) {
if (file.isDirectory()) {
if (file.isDirectory() || !file.getName().endsWith(".ovpn")) {
continue;
}
if (!file.getName().endsWith(".ovpn")) {
continue;
}
// Read the file and get the server domain
List<String> lines = Files.readAllLines(file.toPath());
for (String line : lines) {
if (line.startsWith("remote ")) {
String[] parts = line.split(" ");
String domain = parts[1];
String hostname = parts[1];
String region = file.getName().split("\\.")[0];
domains.add(new PiaServerToken(domain, region));
Record[] records = new Lookup(hostname, Type.A).run();
if (records != null) {
for (Record record : records) {
ARecord aRecord = (ARecord) record;
servers.add(new PiaServer(aRecord.getAddress().getHostAddress(), region, new Date()));
}
}
break;
}
}
}
return domains;
return servers;
}
}

View File

@ -5,24 +5,25 @@ import cc.fascinated.piaservers.model.PiaServer;
import cc.fascinated.piaservers.pia.PiaManager;
import lombok.SneakyThrows;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.nio.file.Path;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReadMeManager {
private static final DecimalFormat decimalFormat = new DecimalFormat("#,###");
@SneakyThrows
public ReadMeManager() {
public static Path updateReadme() {
System.out.println("Updating README.md");
InputStream readmeStream = Main.class.getResourceAsStream("/README.md");
if (readmeStream == null) {
System.out.println("Failed to find README.md");
return;
return null;
}
File readmeFile = new File("README.md");
if (!readmeFile.exists()) { // Create the file if it doesn't exist
@ -31,21 +32,25 @@ public class ReadMeManager {
// Get the contents of the README.md
String contents = new String(readmeStream.readAllBytes());
// Replace the placeholders in the README.md file
contents = contents.replace("{server_count}", String.valueOf(PiaManager.SERVERS.size()));
contents = contents.replace("{last_update}", new Date().toString().replaceAll(" ", "_"));
// Write total servers per-region
Map<String, Integer> regionCounts = new HashMap<>();
for (PiaServer server : PiaManager.SERVERS) {
String region = server.getRegion();
regionCounts.put(region, regionCounts.getOrDefault(region, 0) + 1);
}
// Replace the placeholders in the README.md file
contents = contents.replace("{server_count}", decimalFormat.format(PiaManager.SERVERS.size()));
contents = contents.replace("{last_update}", new Date().toString().replaceAll(" ", "_"));
contents = contents.replace("{region_count}", decimalFormat.format(regionCounts.size()));
// Write total servers per-region
contents = contents.replace("{server_table}", regionCounts.entrySet().stream()
.sorted((a, b) -> Integer.compare(b.getValue(), a.getValue())) // Sort from highest to lowest
.map(entry -> "| " + entry.getKey() + " | " + entry.getValue() + " |") // Map the region to the count
.reduce((a, b) -> a + "\n" + b).orElse("")); // Reduce the entries to a single string
Files.write(readmeFile.toPath(), contents.getBytes());
System.out.println("Finished updating README.md");
return readmeFile.toPath();
}
}

View File

@ -1,8 +1,11 @@
# PIA Server List
![Servers](https://img.shields.io/badge/servers-{server_count}-brightgreen) ![Last update](https://img.shields.io/badge/{last_update}-brightgreen)
![Servers](https://img.shields.io/badge/servers-{server_count}-blue)
![Regions](https://img.shields.io/badge/regions-{region_count}-blue)
![Last update](https://img.shields.io/badge/last_updated-{last_update}-blue)
This is a list of the OpenVPN servers provided by Private Internet Access (PIA). The list is updated hourly.
This is a list of the OpenVPN servers provided by Private Internet Access (PIA). The list is updated hourly. </br>
Servers that have not been active in the last 2 weeks will be automatically removed.
## Servers
| Region | Servers |