Skip to content

Commit ff070db

Browse files
committed
Cleanup port confusion
1 parent 2b020c9 commit ff070db

9 files changed

Lines changed: 44 additions & 53 deletions

File tree

.env.dev.enc

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
#ENC[AES256_GCM,data:Pe/7k4IiAOnZ,iv:bhThxTQkASr4VHk+djjFAnMxjrKlZvGnNAlU6l/lwTA=,tag:9x1kkUWdc1cuq0XrBbN1cA==,type:comment]
2-
NODE_ENV=ENC[AES256_GCM,data:aGfIqB87bY2//ME=,iv:y4Cr5HNthNjj0WOIemx2UX36winQzw19qKcZtfl+vlA=,tag:VUcIFNTJz3RwDQ4UD7fYiA==,type:str]
3-
DATABASE_URL=ENC[AES256_GCM,data:iSrseXsB7SF7SxZbyDrUmjBib8iQstQmnePyyU04bqYw7NzFOv/aJcUQr9S+ft9v19Pi1fI=,iv:AFKubkh3wwChrHHv/KHtutmGjBdzkNFVzP6FQZdlXU4=,tag:GeuaT+tqDU0xNLm2OBzT7Q==,type:str]
4-
SESSION_SECRET=ENC[AES256_GCM,data:dCYC0db67XZwaEVSXunQNCSUncU=,iv:M+tsygVSUBrHP9fguz6KdlIRHkAyjVGU6JSHBAsxv9U=,tag:/Y0SdZ/263TJ6pFWnDx/Xg==,type:str]
5-
APP_PORT=ENC[AES256_GCM,data:ygvlyw==,iv:K02YPjTDjennd/QEleXEFe5BOfgsnBARE7gN1MzVS2I=,tag:CtGr924Q4Y59Hg7grS1SQg==,type:str]
6-
API_PORT=ENC[AES256_GCM,data:tjG9rg==,iv:wc97ots5NLD6ryubLhs1h8rXhMh3KdufzxR/r+zCj1s=,tag:JZYjCq9MxtYH8RjvL7euVg==,type:str]
7-
#ENC[AES256_GCM,data:SdXu,iv:UTfdtwuRNPSqWFRnPLBR1JiuVUQWvhBq4zMpl03usCI=,tag:bKT8Cwq38jmauo0kVYhFvw==,type:comment]
8-
S3_BUCKET=ENC[AES256_GCM,data:DCg38BFH+3Q4Z+5bvFaL,iv:AzWENoyEXMdni/r6I6SVr2/A3aJ437VmbMzcoiaOPtM=,tag:8usyg2BUmaTr1XirkwUxqA==,type:str]
9-
S3_ENDPOINT=ENC[AES256_GCM,data:wKZ+RuEZbHrE8elMGLI45BxborjOhF9rvO/AaLcuN2iemRPJOXAmgVctKHJv0gof9NPBNfAI3xGa,iv:88BcfgCVunS9IUhBI1CE3mvyjjIq2sL6h7dE0UWSszc=,tag:Uo1LNgtyGNyJW5MlWI43jg==,type:str]
10-
S3_ACCESS_KEY=ENC[AES256_GCM,data:s3RMXLejhOedc8XpoDc70osKOlRlmM+EeX98AGTcJ8E=,iv:YQRrjU4AxMcyhM+r1v9gBm1IPJsuorLU11HDsJkrd0Q=,tag:8RRTQRZ8BT4s0oA0dbXAag==,type:str]
11-
S3_SECRET_KEY=ENC[AES256_GCM,data:WNEBdvW3j8fCh9k6pzjTTFMftOQ66hHB9RZ+cdGlWZQupyTXILsLtsSkWkPJ3gxCLmh1gpcMypTGPk0JQjKJ3Q==,iv:+k9zzVv5E/8GCQQ2/V7/g1pWeu1ajtBvKAX/ImVaxqA=,tag:JEyOrWXREV8Va+Qd7i5tWg==,type:str]
12-
#ENC[AES256_GCM,data:ueAu7OU0ig==,iv:ZP97/oYAKV2n+e3g0JL0rmLWmFDqW1mgN67QEbN/IV4=,tag:tqjKszpmzUp7y9Yr5zIpOw==,type:comment]
13-
BACKUP_S3_PREFIX=ENC[AES256_GCM,data:OVr30Z3Eqm6w,iv:r20SgRLccCoNuAl64gz6XHCsv0c46s1jK+iH3NujPe0=,tag:vnK+LoUIWLX53Wom96GmKA==,type:str]
14-
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacDZyWU5jUUVSRFVyRnFq\naE1TWXNwRnNRVUNjRGdSWTVWeTJVdmI2d0YwCmFBVytSSGhLM041RjlpdzhncWFi\nOWN1VE9zN0NWaWtmQmQwd3FkNSsvMGsKLS0tIEdHSmsyZkhjbFd1b21PcG1CMFpZ\nYXZOL2h1bWJQM3FjNUZpQWdlN293SGcKxA9FIj6bg1B1AWjbCHTq6oCkM8uMBJJt\nCtNr07fDz2cYidSe7GNodgWYvTvuWnRL18bCtnjOgvjN22vOrddsVw==\n-----END AGE ENCRYPTED FILE-----\n
1+
#ENC[AES256_GCM,data:nBnqiVL2QIlj,iv:A83Lcf9b5t9gyj2UYI0VPHip8gls9kKc4JiH++DCZeE=,tag:mThqKjGXme0AjoLSbWMicQ==,type:comment]
2+
DATABASE_URL=ENC[AES256_GCM,data:ZuhS7grMiZ8JaSbPOXdj0nmwzq3/MtFaLvffHkGjUQXyGIH+ZxFjqyNxKeTDhMMLO8W3gLY=,iv:TkVYJFWyNgs/tHL/+hmP7SENbXBGEXQbZEHztZAksog=,tag:rkTUbvHHBJa5UnH2jJGWcg==,type:str]
3+
SESSION_SECRET=ENC[AES256_GCM,data:nNUQ9y6J/836uhJduDfQ0s04vLA=,iv:a5M3x534WMma61VP20hdXW+GlkGdYGDnlzqu8DQPwo4=,tag:vYhvohMGdvpcXJ5I945pSg==,type:str]
4+
APP_PORT=ENC[AES256_GCM,data:y5zZPQ==,iv:1mXb467uI85TXz6RAa0hDQBVsvJQJi/spRq99uNCeG8=,tag:IeBCe8JC8T4s4xseZO2agw==,type:str]
5+
API_PORT=ENC[AES256_GCM,data:UR7xnQ==,iv:Jlzzvc2HdgGA8YrWt5UlgmKWUWEvPLGxNpQnGcmpcig=,tag:OnCpSVbEZ1mwJJPfGtDyTw==,type:str]
6+
#ENC[AES256_GCM,data:GsBO,iv:oinzA2NVQ3pGUP/PWmcw5GNcZSFMQUfYT7feIeq/DRM=,tag:scsv22UXuXDs1iwkDCTE9A==,type:comment]
7+
S3_BUCKET=ENC[AES256_GCM,data:3cz9SDtRdQeWlzQWSDOF,iv:eiCU7sKWkSSt/Dz0AgMdAwZIECFfMuq2n65RFwbSwc8=,tag:gawcT1t7atVwMtF0AuaqVA==,type:str]
8+
S3_ENDPOINT=ENC[AES256_GCM,data:z0IbMOXrfUTs/L00YdYo63y9shSxidJ3tTt8QBzu3Q9au/Q5S309cUSiG4cGYwAR2Yun2eMy2y+n,iv:bBn8O83WxM7fDbACQL3zyOMT57fy9pxFzdZi1rIuwvA=,tag:iOQ6qtllduzr8XkmKlUWDA==,type:str]
9+
S3_ACCESS_KEY=ENC[AES256_GCM,data:dUWrepOsuM72A7gvLnXZaREqIzx2WXVNVZ9FLTfHzVw=,iv:jkP4S7wETC/WspMvfcaBTf48pQkrWcPB5XfHfec3eYk=,tag:LK1cy7TDh9bCrCuUpkDprw==,type:str]
10+
S3_SECRET_KEY=ENC[AES256_GCM,data:cyyWW8SsH1yztj2+OIsfWWftyDBFByzObXkaVgMRXmGkZyrOfIxzDssHN3LD9SA+JrAw05NFAGw48Mrz7fON9A==,iv:EregjryBQEA6jfgkyQvf61PtzCxEBhQv/Kybnwm1wJM=,tag:Q866+O0hVK1kQYnoeA3PXg==,type:str]
11+
#ENC[AES256_GCM,data:KtDqTaiGYQ==,iv:l07389/xe+es4PbG4j/lx7unmAyJeQZdKMUM15pRHYc=,tag:HQyPIH0settg7+U+e4NqlQ==,type:comment]
12+
BACKUP_S3_PREFIX=ENC[AES256_GCM,data:y9HrurDJGVp0,iv:0UFSdJmv2O6O6SvoXrfeYMzWgx56m6XXRD0gS6lTDNQ=,tag:ERHeQZM1GHb8uZrfLBvBvg==,type:str]
13+
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScTk3ckdGOTZjMjFqcm9m\nRFlKeEtTMXd6ZVQvZWZHNDZzTEU2TWYxa2pRCjZKLzNFeTFIb25sSGwzQTRISVdK\neS9Ga3pac2ovaUt4ZElIUGl6Wk1takEKLS0tIExlV0xud3lSZGNuT2hJQjFZYWFV\nNUt6QXRnb1Z6cWFFdk9hcU0wRmZ2TlUKgDoIw89Jw8BzOKpjg80qLgHka6a6xPpA\nynDzCi1Ze6nnCIQ4lu/U8iBo4q6ioCil71d+oJscbR4fJJjKsVDvjA==\n-----END AGE ENCRYPTED FILE-----\n
1514
sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr
16-
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIM0VHV2wydWtWTHdtYng4\nTXpydTFGK1VDcXMvT3pKRms3QWNOTnFOODI0CnZzb3BORjZ3b3hqTXcyK0d0TTMr\nd0ZhRmFzdkNtSEdiZFJyODRHWVBjOWsKLS0tIG1uSzgzZ09YbVdSZ0hLOXk4czli\nK2NyeTVQaWkrdnNzR21rTDlMeEFiSkUKkjHVWv4Jpll5CFtsGu81B1NeM011/KQ5\nHXmlcTQD2Tze54KLQF89EmiY8aREmvOwh6jYeXddOOYxPyQ9PVtaGQ==\n-----END AGE ENCRYPTED FILE-----\n
15+
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMNnk0RFJCSVUwb0hsUTdI\nR2s5UWNETEpLQmQwNWsreWl6eW9mVUZIMmp3Cis1VnJjdWNkUVFWaVBQNFlWMXIv\nUHVDVWpXNjFmT0c0MjVlU2VVNDJCSFUKLS0tIEpxOWMzNXZNcE41d3d6UjdTTmpa\nL2RpMmd1QzlwOSs4OWRLNE5FK0hMN0EK1c6d7kQLEXj1xSnkNlbY3wN1uAo5RVaI\n407usP69/lbUpdBJOdaKQJX/64oNpeP8HeUtjnOn4R0fj0v2RX0fZw==\n-----END AGE ENCRYPTED FILE-----\n
1716
sops_age__list_1__map_recipient=age1ysddqggsx3h8zkv7xn3z26sjak5pqms6pyqhnky9ukrvpk7es5jsayz8w7
18-
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZQkkzK251TDJiQU4rZ2M0\nWUc2aVFiSVptMFd0TzJuL2Nsc09WeUt1clhzCnlhQ09xeWJkNllybFN3dGRUbm5w\nNVZZMmpsTHg0TXV4TXFlNHhGU3RHRGMKLS0tIC9CUGJ0VE1Qb0p3WWVsTFFIWjhx\nVmhpWEhydXN5eUFPN211S3pkWVhoMDQKZkmKvIvGqtu+oEZj1qduI2L421gUNa/c\n9HVAjAFMWMoBJ1axeNG1XPWcvIQ8M+aiS9aVe4aMho5B1iUkZpX6Yg==\n-----END AGE ENCRYPTED FILE-----\n
17+
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZkNBSTBvRDQrTXhiRHNE\nRGt6cWRkZFZlTEtFcHIxd1p6MWFOQWF0N1ZjCjFHUTNIeG9Fayt3TFRuZXJQamxX\nVXFFd1djdTNubmhrdjgrdVlSNERnckEKLS0tIGRCYWxEZVIyVmpxK2FBd0RGTHdC\nZm5aYXlRNDVyKzNHSElxQ3piVkVnbVUKr9PJDaAGD+NSgsh0f3g5CBls2xzJe2am\nSGMWH2Bpa7jKRqSna+h7eVF14cob/i6v2IJq3ZMA1Rc4HoPfH/o6pA==\n-----END AGE ENCRYPTED FILE-----\n
1918
sops_age__list_2__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy
20-
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjVGJPOXYzY0JaWUQvZDJL\nYzBmaEg3YVF1eUFqSlBmU1FvK0tCbWV0dzBNCmxXTlNXNTVzd3hML0QwWldZckNF\nRHVaZnR0UTA1MnpZZUJ4MFpEbTkzWXMKLS0tIGhjdFBHUm1oYkpUYWdoVGhvczBj\neTRsZ2JHemFEazdHWTNhd0s2RWZkakkK57m+nakSoRUpDewjsC+gZsWlNs1BlaUv\nnty9c5dtDTx5a/mFecmSqp0+nXx6Zwhh0SbK2NjQWG8+R0MimTqtNQ==\n-----END AGE ENCRYPTED FILE-----\n
19+
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxQmZGNzVzL2pWNzlocTEz\nM1RraVZ5bnFJcXM2aDZjSlJxVjlxQ29ZL1R3Cm8rc3ZxUEVxb3duQnM2U2RlWTdM\nRlVQRlAyWEFsdFBZNEpNemJ3ZUlCRzgKLS0tIHlROThFeHNhdGxJSncxWVVsUzdj\nZUlHTjAyb0dNcFBSdlVPVDRiMXRlNzgK5LCaaqnqkz1UQ9t4CQelo/9H8mtAFmvu\nd2d+sCtF894lccF/L3LUY1iEKJv0d/CdecT5HMqy65YPn4QFbXRlrA==\n-----END AGE ENCRYPTED FILE-----\n
2120
sops_age__list_3__map_recipient=age1qn0x93jhqjpqwvx5tgxnrwq5e3vuzur9whrkdnrvapd58esm45rqfkuxqh
22-
sops_lastmodified=2026-04-30T14:31:03Z
23-
sops_mac=ENC[AES256_GCM,data:E+9hT1/g2Vht7x9JPIz3keRjHRz0wMzZ3k92xebhC1reByOPHc2O7HYWC0lxUJsBR88yoBcKRR3gT/Q4HfOn4OP/Ghj2mA2tayeK7OdQph6pjCnF65G8RIYzHFygTHGnh7OmoF+0grivoUnFwq7uM4/wWKQ0g/yLz3tNSHVyh8g=,iv:ke1NwDkZEjrrhD6pCFOaj6lQkmFqw+nWHldF0bZxBmw=,tag:3az+i6lW1T9j1/WPQk+jvA==,type:str]
21+
sops_lastmodified=2026-04-30T15:13:24Z
22+
sops_mac=ENC[AES256_GCM,data:ZYCekOUTEEHFSOI3z/5GCo9ERWqgY7TxgoJskZObcHxCQap8CNATQ7+lrjGe5NAr5hVezEP4d11e5waMSy/Ss/HytSyOmTLGnfkQJlt2sOan35CuM53MS+h12WBECuAFfcN2vtQkUOBv4Bm3xK7B4aLIwyEQrzkhyAq626xc+g8=,iv:3B26DkkQ0GmwBf0toLsVm+XqvfLrqv0kC1nxOWzOB+s=,tag:PcjvDTqZ25CMAr9O1si0Tw==,type:str]
2423
sops_unencrypted_suffix=_unencrypted
2524
sops_version=3.11.0

.env.enc

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,24 @@
1-
#ENC[AES256_GCM,data:PQSp9mid3Uzv,iv:mG36Z+7sSyDXs/QwdDus5ekYQ6Sn3dbdJdTkpFaq/dM=,tag:6b9nDslQJI3ewJofCguBzQ==,type:comment]
2-
NODE_ENV=ENC[AES256_GCM,data:V9vIeSwxQdATcw==,iv:OfWwY8CL6uofEPKuETI/iW8FQtZ41ALiL5GY+m3lNeY=,tag:QrhNn0/PAtMHuAKYkDArDg==,type:str]
3-
DATABASE_URL=ENC[AES256_GCM,data:XE48PVDDugAVkFH7g4dqse68bQN2JdjlTdVx4MtI33J13BDdgDmtFx9YB01T8fvOGYWLMQ4=,iv:bb9wc8KfvlBaTbVZZCOo8lmZbFjBE7znWEAsP1E/RMw=,tag:XjScKd745gWKKXbwG7KM8w==,type:str]
4-
SESSION_SECRET=ENC[AES256_GCM,data:WRoYTvQzrnQAQ5mTZPWVNacpJa6QsIEP1eIj+mMMZ8M=,iv:iRqOhe8ZOM716motpVLcRy+ZHlOcWG81mmUxGo0MCSA=,tag:TdI67wPWBT07T9yFwAsJAA==,type:str]
5-
APP_PORT=ENC[AES256_GCM,data:zkvvHg==,iv:I6WTIcfJDYPs8h/wVMAqO9trkU1MdtXGvSnVNC5cgNg=,tag:cYnqAJQFO5UgNxB98lwR7Q==,type:str]
6-
API_PORT=ENC[AES256_GCM,data:84++pA==,iv:AB10xbF7gtgOeTEY09S3bUErqEKXqlZYcQGONFDoNJ0=,tag:0ENwE0UckC8Cz9bBg+6psg==,type:str]
7-
#ENC[AES256_GCM,data:ZduV,iv:jORAJfO89EInnuIjHrSXcZCV3RZ8QI7mfUNlZUNnMwc=,tag:C4zfdE7EScsyvoWowXy0gQ==,type:comment]
8-
S3_BUCKET=ENC[AES256_GCM,data:VrrktvvWFHD34ORCRfXL,iv:deLEbEgh5KdpXiskZEV34EfHiJEs3mN567bKz+MtAdQ=,tag:V5XJmpOoIgtoP6MnVR7x7Q==,type:str]
9-
S3_ENDPOINT=ENC[AES256_GCM,data:HWW/hJMlU0IgshlcBSwlvo2MTwgZMZIwUtq9zv/uxZArAZYf5gUry4s5Hda9hIv0L6mCBFonO496,iv:u2FL4QOobF70UmN/Zd9ye6SKiZX8MIYTzKMiLhmXQTw=,tag:kvcTe//MHLjc8GuURLSwRw==,type:str]
10-
S3_ACCESS_KEY=ENC[AES256_GCM,data:GG6FsHiBWQa2A12S4n4z+saMs8x5ukmFwc3ms2SAOKI=,iv:gqCGzklyO0m8WuxY25EJq/XvmjM+MpmTBQzrqdIh4/k=,tag:O9K2F/p9vLVkfMD9vIKgnA==,type:str]
11-
S3_SECRET_KEY=ENC[AES256_GCM,data:ZdC8k63t99UK41QWUAViyKf3Zj4od08ABbxovRB0UIE6sIOcrgbyZRgYV8vHbA/TNfnAkm6uai2az79uRJm3AQ==,iv:BZ3o4bwV25ie9bsSnuT2Ct2tlblSeHynkdLKq1T97oM=,tag:IuGWZU1yuVMJdcxF4vn+RA==,type:str]
12-
#ENC[AES256_GCM,data:D7jckDbgRQ==,iv:e8CoLyBP4LkjurmSEfTZeXJc+bHf90mxzNrJQeI5Qt4=,tag:uxmNYIkNikZf7/mCkR8OCg==,type:comment]
13-
BACKUP_S3_PREFIX=ENC[AES256_GCM,data:xAq2Eul0gvHQ,iv:nYgKBub4SNyNVw2tJSl6TnwJqBqHFUTUSGmaauI7AlM=,tag:1uL/LzYJZRaGYzAZBB75Cw==,type:str]
14-
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsK1R5Vkk1SmlZN1YrZHJ4\nNE1GSnh2ZE5FMjROMUtFVi9BWS8rZWxnblF3CklENWN1K2w4MVpsUWhlcy8vb044\nWFVoM0h0NXZFRmcvUW15UWVaVno1YkEKLS0tIERMUDlacGkxaTB4Y3o2NWd2UjhQ\nOUZhVkZjWHJ6eHZTU2hCUXhzK0IwUmcKss5mSXdKapdaUts0PaJC132AHQOJ5VGv\nzUhTLnxwMrGRgmEiqxU4/Os1tDAIwQZ3vJ3dImEgktBPA/WD0RUryg==\n-----END AGE ENCRYPTED FILE-----\n
1+
#ENC[AES256_GCM,data:vf8HCSxdhMtN,iv:XCLJyJv15JYrmb5jM5G4kYOt4hL9/hJNhmT96zNX0lw=,tag:HkgyhGmZ2JSgi+ahcwn3ag==,type:comment]
2+
DATABASE_URL=ENC[AES256_GCM,data:0gjQ/HVYHQU963c6SOk10MLKhWZHxGK8mn9/6NQs8FMz9Zuh7onWw5ynB/RtVOwU3zGfE2s=,iv:910tjevFcLIwrpPuaIZGiTz6wvGC3tMTgY5sSlf88eg=,tag:SYeYGmed3Fj74Pbhkxc/VA==,type:str]
3+
SESSION_SECRET=ENC[AES256_GCM,data:QRK+3o/8aa2V0jBDgH1/NF2IHQMwClBofSsQb5wQgaE=,iv:sLorEntuqNyiP198RZoJ04wmvQ/fZJeT+37j9/OpPg0=,tag:qGhtkmcO4uiTX8a39bwtnw==,type:str]
4+
APP_PORT=ENC[AES256_GCM,data:80tXlQ==,iv:oZKeiFDJcyCjuvADKxYdbTSwd4K2gGlKXLgvoAHmsnk=,tag:1ZfhJ1gPE/TEiRGzfyfmTg==,type:str]
5+
API_PORT=ENC[AES256_GCM,data:robOHA==,iv:Sj1GWpLk5CAXJ/sfOZ0eJNtwqJtoubEv7Eg/tN9pLxw=,tag:u1Xs4QysafsLiMphLMeJAg==,type:str]
6+
#ENC[AES256_GCM,data:CMFM,iv:sr0eocojCnchr4kCYhA8A1nGt6IQ1UzNeG+Lr01DD5E=,tag:mhVoJZxl/ft8uXRbZnt7ZQ==,type:comment]
7+
S3_BUCKET=ENC[AES256_GCM,data:jw14jrD9BCgfdlUINE1S,iv:5Yucpn9UzoQrWm/fUjx8GYRgyFRMJgFRWo8HN6ccDxw=,tag:mrlX8k58LPDFUV0JCUufZg==,type:str]
8+
S3_ENDPOINT=ENC[AES256_GCM,data:n4Zw2awL6njm0NATjD65ypAVUQ/uXDF0BGxC5KCKqKgMRXUzH/ny1zpvVlJF1lb9JdEmWO7UAJVM,iv:gBDinVj9vlhQMYTuMcTAY3lb187mEGKTRhoTyLaHRNg=,tag:q9qhJP8FWkkk9Yav4W6YHA==,type:str]
9+
S3_ACCESS_KEY=ENC[AES256_GCM,data:PFgFY+RymmuUNRHplt82aia0Rg37vNQ4UHmpzlfMGi8=,iv:jFxwkrvVxKrOX9N1adDRQu3And5KRdiX4nSXOntsjdo=,tag:gh/Xfi/4cjV9pEG1csmZMw==,type:str]
10+
S3_SECRET_KEY=ENC[AES256_GCM,data:NOkXLgWqWJdGqdhhB1RPrXaH6EU2BaSsC3fdcezcsHWFxyUyuTqFwmoe6gHgnxvROnJVcO0urXGVoSPj55E6bw==,iv:QStdUBYEBpFW1uBn7EXhSPG3V7XQoXD7SW/xqC5Z2Nk=,tag:gb2k2HDuWZfX6TPY+3uaqg==,type:str]
11+
#ENC[AES256_GCM,data:FFHcd+X9Iw==,iv:4AP+r0Dk7EFFWctR7T9/Hxx2GhsQhBbL+xY1wLlXajc=,tag:VBiP5vBoDysxoHZOLHTMPg==,type:comment]
12+
BACKUP_S3_PREFIX=ENC[AES256_GCM,data:vDk3pxeCnfZy,iv:xKwxM8AFf1LhpCr50VdoIoEeDL7uUxwcmaoAqA/88Ag=,tag:KzUUkQgDt9zudTu7QpPLgw==,type:str]
13+
sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5b3ZHckJaaWxic2l4OHZr\nYlpTcUhqZE4yMnBjU0JZVnhwY05LTENsSmo4CmhmZTVWcklHQ0NaNHRSVzUzQlVr\nc0dHaDVqdzZIZlIwMXRsM2tjbTFMZTgKLS0tIFlLTUUzcVNpRVBlMXhRZXVmcUZh\nQjhWOUt5aVZDT1lDUVdmdEx2emMrWjgK1s+xmEva0jLm0DY0zLn62Hu6l3RvhNe8\nYj1beHP7R6h99Z0v/gy/vWBoc/d0vQmAwsh/A1OclCWUawRwmlQQ/w==\n-----END AGE ENCRYPTED FILE-----\n
1514
sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr
16-
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOeGd6OUNRNWR0OFcwaURN\neHpEV2tlOGcwbGRFT1IxbWJETTRUK2p3WlIwCjdCcGtCaXJyQnkzNUQ1S3lycUlM\nWGpmQlhUdTcvWWswYlh3ZW00ZGJSam8KLS0tIFpHc1liWUg5QXNUZUVmREJaRllP\nTlJROCtLOTRKTjdGNGhCVzNuVkl0VHMK+UiCRVtAYg9MbSdTC5+SQwOgatn84wdn\nl14sjCX3BA/njQE5u6VPpPp95gcaAumjAwWuz7GbLvJAhhfI3ZwE1A==\n-----END AGE ENCRYPTED FILE-----\n
15+
sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyaFFFaVhlSFVNODlTSCsz\nYkkrTS8yVnNLT1FRWDllM3NSR1NmWlJqNzB3Cm5kMmNmZmVFSDc4aHY4NTJmdWtQ\nSU0vVXVNellMZkpZMFFOdjlQOTFONnMKLS0tIEZFZUNDZGpOM1RpK1RiSmpVVDZG\nY0k3cVpQc2VwbHVTNEk3ZVB1KzN3cmsKK7GZY/OZ/yugrNKuIOamSk04H1jtybaG\nu2sOYTJJ2+QLoAe5mhNjncFWgAbzm/wZ4cLVzG11D2Mz36C7i3PkMw==\n-----END AGE ENCRYPTED FILE-----\n
1716
sops_age__list_1__map_recipient=age1ysddqggsx3h8zkv7xn3z26sjak5pqms6pyqhnky9ukrvpk7es5jsayz8w7
18-
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1RlRML1VYb0grSk5HdW4x\nNk1ueFhxZVcyK21yYVh0OHk5VDUxTjlLYVJBCnRoYTJ0N2hPRkJXWmY5V05TVFR5\ncHY0bkZEWUxPT2ZRU0xYcUNaaFhzMG8KLS0tIEJ3WTB6dTJnTXp2WGlzR1dSTGxI\nN3VBM0RmWnhRNWNLU3ZVTWJSakdFVkUKyWmb58j8Ej2VxSPyH35Qfori5NbJx6DB\n4DNGiTofXf7DKmv5CY9c55yrycLsRLQmR8I5/bRHrMvKykqY5ZU2wQ==\n-----END AGE ENCRYPTED FILE-----\n
17+
sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCbTRYa1B6c3B0V1c1Sk85\na0pMZE1vRW5aenBwbFpQd3hqWDM2UGVkRTBNCkhPVmhEZGMzSUU0bU5tcXpMcWxk\nMnA2WStYRWNxQjltUlQwN0hUZUdVTXMKLS0tIDFraUxVK0R5Ui9qK05YOXA5eVFQ\ncTVYZlJ2Z2R2OExuM1RDVjdiOVU0blkKaKCP2CuALbQHgiy4+izMq6cR4ktrdE81\n/BwZotZ1Yzsu3mgiAF9v4q1/WFq7MmQvMrZCaoOaVrNxGP/tgRv+Iw==\n-----END AGE ENCRYPTED FILE-----\n
1918
sops_age__list_2__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy
20-
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1dXcySW9qNVhmVGVqNFpu\nOVd4WVF0MFRTdHU4Z2d6MUhZL3RaZHlvWHpJCnhqSXdCTXFmYm9ESXhyazRLWkF0\nYmZZd3d3MklleFV4a0J5MndoSDNjNncKLS0tIFVadUdxOHVkckIyZ08xTlN3eTdB\nZEhVbmNKTnM1NUNZV1hhRWxtSG4xdm8KZaLgNJbh4gg7BLTrhj4Gyl9qIyT+CebB\n4KY7bsBhDIQBjfpwHsMCHxwK3ayycJ5U6gNcuC1MKCkHim1R4CrGDw==\n-----END AGE ENCRYPTED FILE-----\n
19+
sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2UVhrMjI0TjJiaG5FcUcr\nM2J1c2xRZDRoWXhqV1RFUXZYZ1VRRTgxMWdjClk5Wkl0dUZiT3A3S25SN2lIODJL\nWGV1WlEyVTlzTjRsTVZwU1RlUGlxa0kKLS0tIFRWL2ZEVDZnMWlycFBiQVRZRE1D\nVDhOVjljUE1zZGJtVXN3TklzOXBNZmcKVA41za2K9OldKEwkMQ/CTv4XUohQkwQ0\nJ+EPSVauRh8FKDDOYvjKv9rXNCf4ORtdKXK+EK0pxNJkMFZl8p6yLA==\n-----END AGE ENCRYPTED FILE-----\n
2120
sops_age__list_3__map_recipient=age1qn0x93jhqjpqwvx5tgxnrwq5e3vuzur9whrkdnrvapd58esm45rqfkuxqh
22-
sops_lastmodified=2026-04-30T14:31:02Z
23-
sops_mac=ENC[AES256_GCM,data:l8l2XHIttlj39k2rXi+UJKecCLfqQGrXhvcYiBPxiw065IbseI5VZW8N7bYX/jUHveFZXUHpiq/HqRYFiQS23phr8HeLyXHifqmLIWdPST5fhqjlG0+EdvqxQMi6whuDjJZTS4eHU34S7kR3XlnarmzzG8OTIEWi9U5ZYCWyX2w=,iv:1wsgZBVsL56AFGLeatFVoT7azRdtdy5ktGQ4p857VMw=,tag:JBz1yIwI6ghmKJ79hq5tVQ==,type:str]
21+
sops_lastmodified=2026-04-30T15:13:26Z
22+
sops_mac=ENC[AES256_GCM,data:DGCQFWQZT0S6t2mFTQ+D2Q/6CvIB9SYMA/pp4wgM85vHYXZ72Zv/7JWmwLYJwT1n3W3SHfJcw6aGIHmJd0nDReEdVWxDfLqvlMfZ8xEfxA8HXx/Fl/oCwUSUUjTITQFIwdrc/iyDkfNKHGQeQtW6dR3SSLI9k1egUZGW7R08RoY=,iv:TxHIgpvTvb6WPd5UXOY77ip99d1HnZQd3MdkNTgHuoQ=,tag:9dToR6zA8IgIEl/Qjo6heA==,type:str]
2423
sops_unencrypted_suffix=_unencrypted
2524
sops_version=3.11.0

.env.test

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
NODE_ENV=development
33
DATABASE_URL=postgresql://underlay:underlay@localhost:5432/underlay
44
SESSION_SECRET=dev-secret-change-me
5-
APP_URL=http://localhost:4321
6-
API_PORT=3000
75

86
# S3 (MinIO in dev)
97
S3_BUCKET=underlay

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,8 +198,8 @@ Required GitHub secrets: `SSH_PRIVATE_KEY`, `SSH_HOST`, `SSH_USER`, `GHCR_USER`,
198198
|----------|-------------|
199199
| `DATABASE_URL` | PostgreSQL connection string |
200200
| `SESSION_SECRET` | Secret for signing session cookies |
201-
| `APP_URL` | Public frontend URL (for CORS) |
202-
| `API_PORT` | Fastify API port (default: 3000) |
201+
| `APP_PORT` | Host-published port for Astro SSR (compose only, default: 4322) |
202+
| `API_PORT` | Host-published port for Fastify API (compose only, default: 3001) |
203203
| `S3_BUCKET` | S3 bucket name |
204204
| `S3_REGION` | S3 region |
205205
| `S3_ENDPOINT` | S3 endpoint (for MinIO, R2, etc.) |

dev.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ case "$MODE" in
1515
echo "Creating .env.local from .env.test defaults (with Docker hostnames)"
1616
sed -e 's|@localhost:5432|@postgres:5432|' \
1717
-e 's|http://localhost:9000|http://minio:9000|' \
18-
-e '/^APP_URL=/d' \
19-
-e '/^API_PORT=/d' \
2018
.env.test > .env.local
2119
else
2220
echo "No .env.test found — create .env.local manually"

docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ services:
1010
environment:
1111
NODE_ENV: production
1212
NODE_OPTIONS: "--max-old-space-size=448"
13+
# Host ports (left) are set via .env; container ports (right) are fixed
1314
ports:
1415
- "${APP_PORT:-4322}:4321"
1516
- "${API_PORT:-3001}:3000"

src/api/server.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,5 @@ const isMain =
6161

6262
if (isMain) {
6363
const app = await buildApp();
64-
const port = Number(process.env.API_PORT ?? 3000);
65-
await app.listen({ port, host: "0.0.0.0" });
64+
await app.listen({ port: 3000, host: "0.0.0.0" });
6665
}

src/lib/page-utils.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,8 @@
22
* Shared utilities for Astro pages (server-side).
33
*/
44

5-
/** Internal API base URL */
6-
export const apiBase =
7-
import.meta.env.DEV
8-
? "http://localhost:3000"
9-
: `http://localhost:${import.meta.env.API_PORT ?? 3000}`;
5+
/** Internal API base URL (Astro and Fastify are co-located in the same container) */
6+
export const apiBase = "http://localhost:3000";
107

118
/** Format bytes into human-readable size */
129
export function formatBytes(bytes: number): string {

src/pages/docs/self-host.astro

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ npm run tool:backup
4141
<table>
4242
<tr><td><code>DATABASE_URL</code></td><td>PostgreSQL connection string</td></tr>
4343
<tr><td><code>SESSION_SECRET</code></td><td>Secret for signing session cookies</td></tr>
44-
<tr><td><code>APP_URL</code></td><td>Public URL of the frontend (for CORS)</td></tr>
45-
<tr><td><code>API_PORT</code></td><td>Port for the Fastify API server (default: 3000)</td></tr>
44+
<tr><td><code>APP_PORT</code></td><td>Host-published port for Astro SSR (Docker only, default: 4322)</td></tr>
45+
<tr><td><code>API_PORT</code></td><td>Host-published port for Fastify API (Docker only, default: 3001)</td></tr>
4646
<tr><td><code>S3_BUCKET</code></td><td>S3 bucket name</td></tr>
4747
<tr><td><code>S3_REGION</code></td><td>S3 region</td></tr>
4848
<tr><td><code>S3_ENDPOINT</code></td><td>S3 endpoint URL (for MinIO, R2, etc.)</td></tr>

0 commit comments

Comments
 (0)