Merge pull request '[FA-misc] Swaps out openvpn container for ExpressVPN' (#70) from feature/FA-misc_VPNSwitch into master
All checks were successful
CI / build-backend (push) Successful in 1m35s
CI / build-frontend (push) Successful in 49s
Build Gateway / build-subgraphs (map[name:novel-service project:FictionArchive.Service.NovelService subgraph:Novel]) (push) Successful in 1m1s
Build Gateway / build-subgraphs (map[name:reporting-service project:FictionArchive.Service.ReportingService subgraph:Reporting]) (push) Successful in 49s
Build Gateway / build-subgraphs (map[name:scheduler-service project:FictionArchive.Service.SchedulerService subgraph:Scheduler]) (push) Successful in 52s
Build Gateway / build-subgraphs (map[name:translation-service project:FictionArchive.Service.TranslationService subgraph:Translation]) (push) Successful in 1m1s
Build Gateway / build-subgraphs (map[name:user-service project:FictionArchive.Service.UserService subgraph:User]) (push) Successful in 56s
Build Gateway / build-subgraphs (map[name:usernoveldata-service project:FictionArchive.Service.UserNovelDataService subgraph:UserNovelData]) (push) Successful in 1m5s
Release / build-and-push (map[dockerfile:FictionArchive.Service.FileService/Dockerfile name:file-service]) (push) Successful in 3m0s
Release / build-and-push (map[dockerfile:FictionArchive.Service.NovelService/Dockerfile name:novel-service]) (push) Successful in 2m9s
Release / build-and-push (map[dockerfile:FictionArchive.Service.ReportingService/Dockerfile name:reporting-service]) (push) Successful in 1m49s
Release / build-and-push (map[dockerfile:FictionArchive.Service.SchedulerService/Dockerfile name:scheduler-service]) (push) Successful in 2m0s
Release / build-and-push (map[dockerfile:FictionArchive.Service.TranslationService/Dockerfile name:translation-service]) (push) Successful in 1m55s
Release / build-and-push (map[dockerfile:FictionArchive.Service.UserNovelDataService/Dockerfile name:usernoveldata-service]) (push) Successful in 1m47s
Release / build-and-push (map[dockerfile:FictionArchive.Service.UserService/Dockerfile name:user-service]) (push) Successful in 1m53s
Release / build-frontend (push) Successful in 1m56s
Build Gateway / build-gateway (push) Successful in 4m10s

Reviewed-on: #70
This commit was merged in pull request #70.
This commit is contained in:
2026-04-26 20:18:28 +00:00
5 changed files with 16 additions and 10 deletions

View File

@@ -95,6 +95,9 @@ NOVELPIA_USERNAME=your-username
NOVELPIA_PASSWORD=your-password NOVELPIA_PASSWORD=your-password
DEEPL_API_KEY=your-api-key DEEPL_API_KEY=your-api-key
# ExpressVPN (used by the `vpn` container that tunnels novel-service into Korea)
EXPRESSVPN_ACTIVATION_CODE=your-expressvpn-activation-code
# S3 Storage # S3 Storage
S3_ENDPOINT=https://s3.example.com S3_ENDPOINT=https://s3.example.com
S3_BUCKET=fictionarchive S3_BUCKET=fictionarchive

View File

@@ -98,6 +98,7 @@ for svc in selected_services:
# Export schema # Export schema
run([ run([
"dotnet", "run", "dotnet", "run",
"-c", "Release",
"--no-build", "--no-build",
"--no-launch-profile", "--no-launch-profile",
"--", "--",

View File

@@ -9,7 +9,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="MassTransit" Version="8.5.7" /> <PackageReference Include="MassTransit" Version="8.5.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.11" /> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.11" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="NodaTime.Testing" Version="3.3.0" /> <PackageReference Include="NodaTime.Testing" Version="3.3.0" />

View File

@@ -9,7 +9,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="FluentAssertions" Version="6.12.0" /> <PackageReference Include="FluentAssertions" Version="6.12.0" />
<PackageReference Include="MassTransit" Version="8.5.7" /> <PackageReference Include="MassTransit" Version="8.5.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.11" /> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="9.0.11" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="NodaTime.Testing" Version="3.3.0" /> <PackageReference Include="NodaTime.Testing" Version="3.3.0" />

View File

@@ -43,7 +43,7 @@ services:
# VPN Container # VPN Container
# =========================================== # ===========================================
vpn: vpn:
image: dperson/openvpn-client image: misioslav/expressvpn:latest
networks: networks:
fictionarchive: fictionarchive:
ipv4_address: 172.20.0.20 ipv4_address: 172.20.0.20
@@ -51,23 +51,25 @@ services:
- novel-service - novel-service
cap_add: cap_add:
- NET_ADMIN - NET_ADMIN
- SYS_PTRACE
devices: devices:
- /dev/net/tun - /dev/net/tun
volumes:
- /srv/docker_volumes/korean_vpn:/vpn
dns:
- 192.168.3.1
environment: environment:
- DNS=1.1.1.1,8.8.8.8 CODE: ${EXPRESSVPN_ACTIVATION_CODE}
SERVER: krsi
PROTOCOL: lightwayudp
WHITELIST_DNS: 1.1.1.1,8.8.8.8
CONNECTION_CHECK_INTERVAL: 30
RECONNECT_FAILURE_THRESHOLD: 3
extra_hosts: extra_hosts:
- "postgres:172.20.0.10" - "postgres:172.20.0.10"
- "rabbitmq:172.20.0.11" - "rabbitmq:172.20.0.11"
healthcheck: healthcheck:
test: ["CMD", "ping", "-c", "1", "-W", "5", "1.1.1.1"] test: ["CMD-SHELL", "test ! -f /tmp/expressvpn/reconnect-failure.flag && expressvpnctl status | grep -q Connected"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 3 retries: 3
start_period: 30s start_period: 60s
restart: unless-stopped restart: unless-stopped
# =========================================== # ===========================================