From b3598dbe7e2c6f276d46efc6a3a227274e278915 Mon Sep 17 00:00:00 2001 From: whitney Date: Thu, 10 Apr 2025 22:14:00 -0700 Subject: [PATCH] Update olomana containers --- games/minecraft/.gitignore | 5 -- games/minecraft/README.md | 51 ++++++++++--- ...compose.yml.blanked => docker-compose.yml} | 29 +++++--- home/homeassistant/.gitignore | 2 - ...ration.yaml.blanked => configuration.yaml} | 7 +- ...compose.yml.blanked => docker-compose.yml} | 8 +- media/metube/.gitignore | 2 - ...compose.yml.blanked => docker-compose.yml} | 5 +- media/photoprism/.gitignore | 4 +- media/photoprism/config-admin-blanked.env | 16 ++++ media/photoprism/config-public-blanked.env | 13 ++++ media/photoprism/docker-compose.yml | 45 ++++++++++++ media/photoprism/docker-compose.yml.blanked | 73 ------------------- media/plex/.gitignore | 2 - ...compose.yml.blanked => docker-compose.yml} | 7 +- software-development/gitea/.gitignore | 3 +- software-development/gitea/README.md | 7 ++ .../gitea/database.env.BLANKED | 3 + .../gitea/docker-compose.yml.blanked | 61 ---------------- software-development/gitea/gitea.env.BLANKED | 11 +++ 20 files changed, 169 insertions(+), 185 deletions(-) delete mode 100644 games/minecraft/.gitignore rename games/minecraft/{docker-compose.yml.blanked => docker-compose.yml} (84%) delete mode 100644 home/homeassistant/.gitignore rename home/homeassistant/{configuration.yaml.blanked => configuration.yaml} (79%) rename home/homeassistant/{docker-compose.yml.blanked => docker-compose.yml} (69%) delete mode 100644 media/metube/.gitignore rename media/metube/{docker-compose.yml.blanked => docker-compose.yml} (86%) create mode 100644 media/photoprism/config-admin-blanked.env create mode 100644 media/photoprism/config-public-blanked.env create mode 100644 media/photoprism/docker-compose.yml delete mode 100644 media/photoprism/docker-compose.yml.blanked delete mode 100644 media/plex/.gitignore rename media/plex/{docker-compose.yml.blanked => docker-compose.yml} (71%) create mode 100644 software-development/gitea/database.env.BLANKED delete mode 100644 software-development/gitea/docker-compose.yml.blanked create mode 100644 software-development/gitea/gitea.env.BLANKED diff --git a/games/minecraft/.gitignore b/games/minecraft/.gitignore deleted file mode 100644 index 1327608..0000000 --- a/games/minecraft/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -config/ -maps/ -plugins/ -docker-compose.yml - diff --git a/games/minecraft/README.md b/games/minecraft/README.md index 550b373..a9f4314 100644 --- a/games/minecraft/README.md +++ b/games/minecraft/README.md @@ -2,14 +2,24 @@ Self-host one or multiple servers. -## Instructions +## Setup -### Minecraft Setup +### Whitelist -#### Whitelist -After first time start go into `server.properties` and set `white-list=true`. -Add users via server commands (`whitelist add NAME`). -OR add users to `whitelist.json` in server directory. +#### Method 1: Docker +In the `itzg/minecraft-server` env vars in docker, add the following to enable and configure whitelist. +``` +ENABLE_WHITELIST: "TRUE" +WHITELIST: "player1,player2,player3" +``` +Note: The whitelist is additive, so if you set it to `[player1]` and later `[player2,player3]`, you'll end up with a whiltelist accepting all 3 players. + +Edit the whitelist in `whitelist.json` in the server directory. + +#### Method 2: Manual +After first time startup set `enforce-whitelist=true` in `server.properties`. + +Then, create `whitelist.properties` in the server directory with the following contents: ``` [ { @@ -19,18 +29,39 @@ OR add users to `whitelist.json` in server directory. ] ``` +#### Method 3: In Game +After first time start go into `server.properties` and set `enforce-whitelist=true`. +Add users via server commands (`whitelist add NAME`). + #### Plugins/Mods -##### Plugins +### Plugins SinglePlayerSleep: `https://www.spigotmc.org/resources/singleplayersleep.68139/` Dynmap: `https://www.spigotmc.org/resources/dynmap%C2%AE.274/` NoEndermanGrief: `https://www.spigotmc.org/resources/no-enderman-grief2.71236/` ajLeaderboards: `https://www.spigotmc.org/threads/ajleaderboards.471179/` -##### Mods +#### Updating Plugins +It's very easy, just obtain the new jar file for the updated plugin, stop server and swap old jar in `plugins/`. -### Maintenance -Configure scheduled restarts by configuring `crontab` to periodically restart the container. +Most plugins should not need to regenerate their data, so you can leave it as is. + +## Maintenance + +### Backups +Take backups periodically, we got griefed once and only survived because of a backup. + +Create Tar archive: +``` +cd location_of_mc_files +tar -czvf ~/1970.01.01-world-backup.tar.gz world world_nether world_the_end server.properties whitelist.json spigot.yml +``` +And move to a safe place. + +### Periodic Restarts +You might want this because the JVM might start hitting memory limits if too much is going on. + +You can configure scheduled restarts by configuring `crontab` to periodically restart the container. Edit crontab: `sudo crontab -e` Add: `0 2 * * * docker restart minecraft-2023 minecraft-creative` diff --git a/games/minecraft/docker-compose.yml.blanked b/games/minecraft/docker-compose.yml similarity index 84% rename from games/minecraft/docker-compose.yml.blanked rename to games/minecraft/docker-compose.yml index e5a9c16..71845eb 100644 --- a/games/minecraft/docker-compose.yml.blanked +++ b/games/minecraft/docker-compose.yml @@ -18,19 +18,21 @@ services: - grafana - minecraft ports: - - "[SERVER_PORT_1]:25565" - - "[PROMETHEUS_PORT_1]:9225" + - "25566:25565" + - "9226:9225" volumes: - /pwspool/games/minecraft/minecraft_creative:/data environment: - TYPE=PAPER - MEMORY=2G - - VERSION=1.21.1 + - VERSION=1.21.4 - EULA=TRUE - SERVER_NAME=minecraft_creative - MODE=creative - DIFFICULTY=peaceful - OPS=RicecakeSMS,pZ_aeriaL + - ENABLE_WHITELIST=true + - WHITELIST=RicecakeSMS,pZ_aeriaL - ICON=https://i.imgur.com/sqjZGql.png - ENABLE_COMMAND_BLOCK=true - GENERATE_STRUCTURES=false @@ -49,27 +51,28 @@ services: - grafana - minecraft ports: - - "[SERVER_PORT_2]:25565" - - "[PROMETHEUS_PORT_2]:9225" - - "[DYNMAP_PORT_2]:8123" + - "25565:25565" + - "9225:9225" volumes: - /pwspool/games/minecraft/minecraft_2023:/data environment: - TYPE=PAPER - MEMORY=4G - - VERSION=1.21.1 + - VERSION=1.21.4 - EULA=TRUE - SERVER_NAME=minecraft_2023 - MODE=survival - SPAWN_PROTECTION=0 - DIFFICULTY=hard - OPS=RicecakeSMS,pZ_aeriaL + - ENABLE_WHITELIST=true + - WHITELIST=RicecakeSMS,pZ_aeriaL - ICON=https://i.imgur.com/sqjZGql.png - SEED="itsgoochfor2023" - MOTD="\u00A77Pinnerland, powered by \u00A75P\u00A79W\u00A75S\u00A77\!" - ALLOW_FLIGHT=false labels: - - traefik.http.routers.minemap.rule=Host(`[MINEMAP_SUBDOMAIN_URL]`) + - traefik.http.routers.minemap.rule=Host(`minemap.whitney.rip`) - traefik.http.routers.minemap.tls=true - traefik.http.routers.minemap.tls.certresolver=lets-encrypt - traefik.http.services.minemap.loadbalancer.server.port=8123 @@ -81,18 +84,20 @@ services: networks: - minecraft ports: - - "[SERVER_PORT_3]:25565" + - "25564:25565" volumes: - /pwspool/games/minecraft/minecraft_skyblock:/data environment: - TYPE=PAPER - MEMORY=4G - - VERSION=1.20.2 + - VERSION=1.21.4 - EULA=TRUE - SERVER_NAME=minecraft_skyblock - MODE=survival - DIFFICULTY=hard - OPS=RicecakeSMS,pZ_aeriaL + - ENABLE_WHITELIST=true + - WHITELIST=RicecakeSMS,pZ_aeriaL - ICON=https://i.imgur.com/sqjZGql.png - MOTD="\u00A77Skyblock, powered by \u00A75P\u00A79W\u00A75S\u00A77\!" labels: @@ -104,13 +109,13 @@ services: networks: - minecraft ports: - - [SEVER_PORT_4]:2565 + - 2565:2565 volumes: - /pwspool/games/minecraft/minecraft_2023/world:/world environment: - RCON_HOST=127.0.0.1 - RCON_PORT=25565 - - HTTP_PORT=[SERVER_PORT_4] + - HTTP_PORT=25565 - FORGE_SERVER="False" - PAPER_SERVER="True" - DYNMAP_ENABLED="True" diff --git a/home/homeassistant/.gitignore b/home/homeassistant/.gitignore deleted file mode 100644 index 7920bfa..0000000 --- a/home/homeassistant/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -configuration.yaml -docker-compose.yml diff --git a/home/homeassistant/configuration.yaml.blanked b/home/homeassistant/configuration.yaml similarity index 79% rename from home/homeassistant/configuration.yaml.blanked rename to home/homeassistant/configuration.yaml index ce52884..a2ac2af 100644 --- a/home/homeassistant/configuration.yaml.blanked +++ b/home/homeassistant/configuration.yaml @@ -10,15 +10,16 @@ frontend: http: use_x_forwarded_for: true trusted_proxies: - - 192.168.x.xxx + - 192.168.96.2 + - 172.18.0.2 # Configure logging logger: default: info logs: - homeassistant.core: debug + homeassistant.core: warning homeassistant.components: info - homeassistant.components.mqtt: debug + homeassistant.components.mqtt: warning automation: !include automations.yaml script: !include scripts.yaml diff --git a/home/homeassistant/docker-compose.yml.blanked b/home/homeassistant/docker-compose.yml similarity index 69% rename from home/homeassistant/docker-compose.yml.blanked rename to home/homeassistant/docker-compose.yml index e589c6f..1327c08 100644 --- a/home/homeassistant/docker-compose.yml.blanked +++ b/home/homeassistant/docker-compose.yml @@ -14,12 +14,10 @@ services: - PGID=1000 - TZ=Etc/UTC volumes: - - /path/to/config:/config - - /path/to/config/configuration.yaml:/config/configuration.yaml - ports: - - 8123:8123 + - /pwspool/software/homeassistant/config:/config + - /pwspool/software/homeassistant/config/configuration.yaml:/config/configuration.yaml labels: - - traefik.http.routers.homeassistant.rule=Host(`SITE_URL`) + - traefik.http.routers.homeassistant.rule=Host(`iot.whitney.rip`) - traefik.http.routers.homeassistant.tls=true - traefik.http.routers.homeassistant.tls.certresolver=lets-encrypt - traefik.http.services.homeassistant.loadbalancer.server.port=8123 diff --git a/media/metube/.gitignore b/media/metube/.gitignore deleted file mode 100644 index 9b05ea1..0000000 --- a/media/metube/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -docker-compose.yml - diff --git a/media/metube/docker-compose.yml.blanked b/media/metube/docker-compose.yml similarity index 86% rename from media/metube/docker-compose.yml.blanked rename to media/metube/docker-compose.yml index 4be671d..6cb3012 100644 --- a/media/metube/docker-compose.yml.blanked +++ b/media/metube/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3" - networks: traefik: external: true @@ -16,7 +14,8 @@ services: environment: - DEFAULT_THEME=dark labels: - - "traefik.http.routers.metube.rule=Host(`[[SITE_URL]]`)" + - "traefik.http.routers.metube.rule=Host(`yt.whitney.rip`)" - "traefik.http.routers.metube.tls=true" - "traefik.http.routers.metube.tls.certresolver=lets-encrypt" - "traefik.http.services.metube.loadbalancer.server.port=8081" + diff --git a/media/photoprism/.gitignore b/media/photoprism/.gitignore index 9b05ea1..37e8a56 100644 --- a/media/photoprism/.gitignore +++ b/media/photoprism/.gitignore @@ -1,2 +1,2 @@ -docker-compose.yml - +config-admin.env +config-public.env diff --git a/media/photoprism/config-admin-blanked.env b/media/photoprism/config-admin-blanked.env new file mode 100644 index 0000000..a3ca4e8 --- /dev/null +++ b/media/photoprism/config-admin-blanked.env @@ -0,0 +1,16 @@ +# See what you should rename this file to in docker-compose.yml +PHOTOPRISM_ADMIN_USER= +PHOTOPRISM_ADMIN_PASSWORD= +PHOTOPRISM_LOG_LEVEL=info +PHOTOPRISM_SITE_URL=https://photos.whitney.rip +PHOTOPRISM_ORIGINALS_LIMIT=5000 +PHOTOPRISM_HTTP_COMPRESSION=gzip +PHOTOPRISM_EXPERIMENTAL=false +PHOTOPRISM_DISABLE_FACES=true +PHOTOPRISM_DISABLE_RAW=false +PHOTOPRISM_JPEG_QUALITY=100 +PHOTOPRISM_SITE_CAPTION=PWS Photos (Admin) +PHOTOPRISM_SITE_DESCRIPTION=Admin instance of PWS Photoprism. +PHOTOPRISM_SITE_AUTHOR=PWS +PHOTOPRISM_ADMIN_ROLE=admin +PHOTOPRISM_DEFAULT_ROLE=admin diff --git a/media/photoprism/config-public-blanked.env b/media/photoprism/config-public-blanked.env new file mode 100644 index 0000000..f004640 --- /dev/null +++ b/media/photoprism/config-public-blanked.env @@ -0,0 +1,13 @@ +PHOTOPRISM_DEFAULT_ROLE=guest +PHOTOPRISM_PUBLIC=true +PHOTOPRISM_LOG_LEVEL=info +PHOTOPRISM_SITE_URL=https://gallery.whitney.rip +PHOTOPRISM_ORIGINALS_LIMIT=5000 +PHOTOPRISM_HTTP_COMPRESSION=gzip +PHOTOPRISM_EXPERIMENTAL=false +PHOTOPRISM_DISABLE_FACES=true +PHOTOPRISM_DISABLE_RAW=false +PHOTOPRISM_JPEG_QUALITY=100 +PHOTOPRISM_SITE_CAPTION=PWS Photos +PHOTOPRISM_SITE_DESCRIPTION=Photos, hosted on PWS! +PHOTOPRISM_SITE_AUTHOR=PWS diff --git a/media/photoprism/docker-compose.yml b/media/photoprism/docker-compose.yml new file mode 100644 index 0000000..af4e48c --- /dev/null +++ b/media/photoprism/docker-compose.yml @@ -0,0 +1,45 @@ +networks: + traefik: + external: true + +services: + admin: + image: photoprism/photoprism + container_name: photoprism-admin + restart: unless-stopped + networks: + - traefik + security_opt: + - seccomp:unconfined + - apparmor:unconfined + env_file: + - config-admin.env + volumes: + - /pwspool/software/photoprism/storage:/photoprism/storage + - /pwspool/software/photoprism/originals:/photoprism/originals + labels: + - traefik.http.routers.private-photos.rule=Host(`photos.whitney.rip`) + - traefik.http.routers.private-photos.tls=true + - traefik.http.routers.private-photos.tls.certresolver=lets-encrypt + - traefik.http.services.private-photos.loadbalancer.server.port=2342 + + public: + image: photoprism/photoprism + container_name: photoprism-public + restart: unless-stopped + networks: + - traefik + security_opt: + - seccomp:unconfined + - apparmor:unconfined + env_file: + - config-public.env + volumes: + - /pwspool/software/photoprism/storage:/photoprism/storage + - /pwspool/software/photoprism/originals:/photoprism/originals + labels: + - traefik.http.routers.public-photos.rule=Host(`gallery.whitney.rip`) + - traefik.http.routers.public-photos.tls=true + - traefik.http.routers.public-photos.tls.certresolver=lets-encrypt + - traefik.http.services.public-photos.loadbalancer.server.port=2342 + diff --git a/media/photoprism/docker-compose.yml.blanked b/media/photoprism/docker-compose.yml.blanked deleted file mode 100644 index 020588a..0000000 --- a/media/photoprism/docker-compose.yml.blanked +++ /dev/null @@ -1,73 +0,0 @@ -version: "3" - -networks: - [TRAEFIK_NETWORK]: - external: true - -services: - photoprism-private: - image: photoprism/photoprism - container_name: photoprism-private - restart: unless-stopped - networks: - - [TRAEFIK_NETWORK] - security_opt: - - seccomp:unconfined - - apparmor:unconfined - volumes: - - /pwspool/software/photoprism/storage:/photoprism/storage - - /pwspool/software/photoprism/originals:/photoprism/originals - environment: - - PHOTOPRISM_ADMIN_USER=[[ADMIN_USER]] - - PHOTOPRISM_ADMIN_PASSWORD=[[ADMIN_PASS]] - - PHOTOPRISM_LOG_LEVEL=info - - PHOTOPRISM_SITE_URL=[[SITE_URL_WITH_HTTPS]] - - PHOTOPRISM_ORIGINALS_LIMIT=5000 - - PHOTOPRISM_HTTP_COMPRESSION=gzip - - PHOTOPRISM_EXPERIMENTAL=false - - PHOTOPRISM_DISABLE_FACES=true - - PHOTOPRISM_DISABLE_RAW=false - - PHOTOPRISM_JPEG_QUALITY=100 - - PHOTOPRISM_SITE_CAPTION=[[SITE_CAPTION]] - - PHOTOPRISM_SITE_DESCRIPTION=[[SITE_DESCRIPTION]] - - PHOTOPRISM_SITE_AUTHOR=[[SITE_AUTHOR]] - labels: - - traefik.http.routers.private-photos.rule=Host(`[[SITE_URL_WITH_HTTPS]]`) - - traefik.http.routers.private-photos.tls=true - - traefik.http.routers.private-photos.tls.certresolver=lets-encrypt - - traefik.http.services.private-photos.loadbalancer.server.port=2342 - - photoprism-public: - image: photoprism/photoprism - container_name: photoprism-public - restart: unless-stopped - networks: - - [TRAEFIK_NETWORK] - security_opt: - - seccomp:unconfined - - apparmor:unconfined - ports: - - "[[DIFFERENT_HOST_PORT]]:2342" - volumes: - - /pwspool/software/photoprism/storage:/photoprism/storage - - /pwspool/software/photoprism/originals:/photoprism/originals - environment: - - PHOTOPRISM_READONLY=true - - PHOTOPRISM_AUTH_MODE=public - - PHOTOPRISM_LOG_LEVEL=info - - PHOTOPRISM_SITE_URL=[[DIFFERENT_SITE_URL_WITH_HTTPS]] - - PHOTOPRISM_ORIGINALS_LIMIT=5000 - - PHOTOPRISM_HTTP_COMPRESSION=gzip - - PHOTOPRISM_EXPERIMENTAL=false - - PHOTOPRISM_DISABLE_FACES=true - - PHOTOPRISM_DISABLE_RAW=false - - PHOTOPRISM_JPEG_QUALITY=100 - - PHOTOPRISM_SITE_CAPTION=[[SITE_CAPTION]] - - PHOTOPRISM_SITE_DESCRIPTION=[[SITE_DESCRIPTION]] - - PHOTOPRISM_SITE_AUTHOR=[[SITE_AUTHOR]] - labels: - - traefik.http.routers.public-photos.rule=Host(`[[DIFFERENT_SITE_URL_WITH_HTTPS]]`) - - traefik.http.routers.public-photos.tls=true - - traefik.http.routers.public-photos.tls.certresolver=lets-encrypt - - traefik.http.services.public-photos.loadbalancer.server.port=2342 - diff --git a/media/plex/.gitignore b/media/plex/.gitignore deleted file mode 100644 index 9b05ea1..0000000 --- a/media/plex/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -docker-compose.yml - diff --git a/media/plex/docker-compose.yml.blanked b/media/plex/docker-compose.yml similarity index 71% rename from media/plex/docker-compose.yml.blanked rename to media/plex/docker-compose.yml index 857df58..b51c0f8 100644 --- a/media/plex/docker-compose.yml.blanked +++ b/media/plex/docker-compose.yml @@ -20,9 +20,8 @@ services: - /pwspool/archive/plex/photos:/photos - /pwspool/archive/plex/homevideos:/homevideos - /pwspool/archive/plex/transcode:/transcode + ports: + - "32400:32400" labels: - - traefik.http.routers.plex.rule=Host(`SITE_URL`) - - traefik.http.routers.plex.tls=true - - traefik.http.routers.plex.tls.certresolver=lets-encrypt - - traefik.http.services.plex.loadbalancer.server.port=32400 + - traefik.enable=false diff --git a/software-development/gitea/.gitignore b/software-development/gitea/.gitignore index 9b05ea1..7897410 100644 --- a/software-development/gitea/.gitignore +++ b/software-development/gitea/.gitignore @@ -1,2 +1,3 @@ docker-compose.yml - +gitea.env +database.env diff --git a/software-development/gitea/README.md b/software-development/gitea/README.md index 6893635..397f7f7 100644 --- a/software-development/gitea/README.md +++ b/software-development/gitea/README.md @@ -7,6 +7,11 @@ Followed instructions on Gitea page: https://docs.gitea.com/next/installation/in ``` sudo groupadd gitea && sudo useradd giteauser && sudo usermod -a -G gitea giteauser && chown -r gitea:giteauser . ``` +2. Configure Environment +Create `gitea.env` and `database.env` from the examples, replacing with relevant env values. + +See [Gitea Documentation](https://docs.gitea.com/administration/config-cheat-sheet) for examples/types. + 2. Run via Docker Compose ``` @@ -23,8 +28,10 @@ Some things that were weird: - could not use any port that wasnt default postgresql (5432) - had to make sure to specify database container by the right name. Removed custom name and used just "database". Note that the first admin is set via env vars, by generating the password hash. Alternatively create your users by setting the env var that controls signups. + 5. Provision new users You can do that from the "Site Administration" view from the first admin user. + 6. Configure SSH **Note: This is probably not worth pursuing and I've given up on it. The following has only sort of worked for me.** diff --git a/software-development/gitea/database.env.BLANKED b/software-development/gitea/database.env.BLANKED new file mode 100644 index 0000000..3e76bc2 --- /dev/null +++ b/software-development/gitea/database.env.BLANKED @@ -0,0 +1,3 @@ +POSTGRES_USER=gitea +POSTGRES_PASSWORD= +POSTGRES_DB=gitea diff --git a/software-development/gitea/docker-compose.yml.blanked b/software-development/gitea/docker-compose.yml.blanked deleted file mode 100644 index 3d45b80..0000000 --- a/software-development/gitea/docker-compose.yml.blanked +++ /dev/null @@ -1,61 +0,0 @@ -networks: - gitea_network: - external: false - TRAEFIK_NETWORK: - external: true - -services: - server: - image: gitea/gitea:latest - container_name: gitea - restart: unless-stopped - depends_on: - - database - environment: - - USER_UID=GITEA_USER_ID - - USER_GID=GITEA_USER_GROUP_ID - - DOMAIN=SUBDOMAIN_URL - - PROTOCOL=http - - GITEA__database__DB_TYPE=postgres - - GITEA__database__HOST=database:5432 - - GITEA__database__NAME=GITEA_DB_NAME - - GITEA__database__USER=GITEA_DB_USER - - GITEA__database__PASSWD=GITEA_DB_PASS - - GITEA__service__DISABLE_REGISTRATION=true - - GITEA__openid__ENABLE_OPENID_SIGNUP=DISABLE_REGISTRATION - - GITEA__openid__ENABLE_OPENID_SIGNIN=false - - GITEA__server__ROOT_URL=SUBDOMAIN_URL - - GITEA__server__LOCAL_ROOT_URL=HTTP_SUBDOMAIN_URL - - GITEA__server__SSH_DOMAIN=SUBDOMAIN_URL - - GITEA__server__SSH_PORT=HOST_SSH_PORT - - GITEA__server__SSH_LISTEN_PORT=HOST_SSH_PORT - - GITEA__server__START_SSH_SERVER=true - networks: - - gitea_network - - TRAEFIK_NETWORK - ports: - - "HOST_SSH_PORT:22" - volumes: - - /pwspool/software/gitea/gitea:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - labels: - - traefik.http.routers.gitea.rule=Host(`SUBDOMAIN_URL`) - - traefik.http.routers.gitea.tls=true - - traefik.http.routers.gitea.tls.certresolver=lets-encrypt - - traefik.http.services.gitea.loadbalancer.server.port=3000 - - database: - image: postgres:14 - networks: - - gitea_network - restart: unless-stopped - environment: - - POSTGRES_USER=GITEA_DB_USER - - POSTGRES_PASSWORD=GITEA_DB_PASS - - POSTGRES_DB=GITEA_DB_NAME - volumes: - - /pwspool/software/gitea/database:/var/lib/postgresql/data - labels: - - traefik.enable=false - diff --git a/software-development/gitea/gitea.env.BLANKED b/software-development/gitea/gitea.env.BLANKED new file mode 100644 index 0000000..46c7596 --- /dev/null +++ b/software-development/gitea/gitea.env.BLANKED @@ -0,0 +1,11 @@ +USER_UID=1005 +USER_GID=1007 +GITEA__server__PROTOCOL=http +GITEA__server__ROOT_URL=https://git.example.com +GITEA__database__DB_TYPE=postgres +GITEA__database__HOST=database:5432 +GITEA__database__NAME=gitea +GITEA__database__USER=gitea +GITEA__database__PASSWD= +GITEA__openid__ENABLE_OPENID_SIGNIN=false +GITEA__service__DISABLE_REGISTRATION=true