2026-06-29 18:20:43 -04:00
|
|
|
#cloud-config
|
|
|
|
|
package_update: true
|
|
|
|
|
packages:
|
|
|
|
|
- docker.io
|
|
|
|
|
- docker-compose-v2
|
|
|
|
|
|
|
|
|
|
write_files:
|
2026-06-29 23:45:43 -04:00
|
|
|
- path: /opt/services/Caddyfile
|
|
|
|
|
permissions: "0644"
|
|
|
|
|
content: |
|
|
|
|
|
{
|
|
|
|
|
email quinn@cocotte.tech
|
|
|
|
|
}
|
|
|
|
|
forge.ct.uvlava.com, npm.ct.uvlava.com, pypi.ct.uvlava.com {
|
|
|
|
|
reverse_proxy forgejo-ct:3000
|
|
|
|
|
}
|
|
|
|
|
forge.mc.uvlava.com, npm.mc.uvlava.com, pypi.mc.uvlava.com {
|
|
|
|
|
reverse_proxy forgejo-mc:3000
|
|
|
|
|
}
|
|
|
|
|
forge.quinn.uvlava.com, npm.quinn.uvlava.com, pypi.quinn.uvlava.com {
|
|
|
|
|
reverse_proxy forgejo-quinn:3000
|
|
|
|
|
}
|
2026-06-29 18:20:43 -04:00
|
|
|
- path: /opt/services/docker-compose.yml
|
|
|
|
|
permissions: "0644"
|
|
|
|
|
content: |
|
|
|
|
|
services:
|
|
|
|
|
forgejo-ct:
|
|
|
|
|
image: codeberg.org/forgejo/forgejo:10
|
|
|
|
|
restart: always
|
2026-06-30 04:34:56 -04:00
|
|
|
environment: { USER_UID: "1000", USER_GID: "1000", FORGEJO__server__HTTP_PORT: "3000", FORGEJO__server__DOMAIN: "forge.ct.uvlava.com", FORGEJO__server__ROOT_URL: "https://forge.ct.uvlava.com/", FORGEJO__server__DISABLE_SSH: "false", FORGEJO__server__START_SSH_SERVER: "true", FORGEJO__server__SSH_LISTEN_PORT: "2222", FORGEJO__server__SSH_PORT: "2222", FORGEJO__server__SSH_DOMAIN: "forge.ct.uvlava.com", FORGEJO__security__INSTALL_LOCK: "true", FORGEJO__service__DISABLE_REGISTRATION: "true", FORGEJO__actions__ENABLED: "true" }
|
2026-06-29 23:45:43 -04:00
|
|
|
volumes: [ /opt/services/ct:/data ]
|
2026-06-30 00:05:27 -04:00
|
|
|
ports: [ "3000:3000", "2222:2222" ]
|
2026-06-29 18:20:43 -04:00
|
|
|
forgejo-mc:
|
|
|
|
|
image: codeberg.org/forgejo/forgejo:10
|
|
|
|
|
restart: always
|
2026-06-30 04:34:56 -04:00
|
|
|
environment: { USER_UID: "1000", USER_GID: "1000", FORGEJO__server__HTTP_PORT: "3000", FORGEJO__server__DOMAIN: "forge.mc.uvlava.com", FORGEJO__server__ROOT_URL: "https://forge.mc.uvlava.com/", FORGEJO__server__DISABLE_SSH: "false", FORGEJO__server__START_SSH_SERVER: "true", FORGEJO__server__SSH_LISTEN_PORT: "2223", FORGEJO__server__SSH_PORT: "2223", FORGEJO__server__SSH_DOMAIN: "forge.mc.uvlava.com", FORGEJO__security__INSTALL_LOCK: "true", FORGEJO__service__DISABLE_REGISTRATION: "true", FORGEJO__actions__ENABLED: "true" }
|
2026-06-29 23:45:43 -04:00
|
|
|
volumes: [ /opt/services/mc:/data ]
|
2026-06-30 00:05:27 -04:00
|
|
|
ports: [ "3001:3000", "2223:2223" ]
|
2026-06-29 18:20:43 -04:00
|
|
|
forgejo-quinn:
|
|
|
|
|
image: codeberg.org/forgejo/forgejo:10
|
|
|
|
|
restart: always
|
2026-06-30 04:34:56 -04:00
|
|
|
environment: { USER_UID: "1000", USER_GID: "1000", FORGEJO__server__HTTP_PORT: "3000", FORGEJO__server__DOMAIN: "forge.quinn.uvlava.com", FORGEJO__server__ROOT_URL: "https://forge.quinn.uvlava.com/", FORGEJO__server__DISABLE_SSH: "false", FORGEJO__server__START_SSH_SERVER: "true", FORGEJO__server__SSH_LISTEN_PORT: "2224", FORGEJO__server__SSH_PORT: "2224", FORGEJO__server__SSH_DOMAIN: "forge.quinn.uvlava.com", FORGEJO__security__INSTALL_LOCK: "true", FORGEJO__service__DISABLE_REGISTRATION: "true", FORGEJO__actions__ENABLED: "true" }
|
2026-06-29 23:45:43 -04:00
|
|
|
volumes: [ /opt/services/quinn:/data ]
|
2026-06-30 00:05:27 -04:00
|
|
|
ports: [ "3002:3000", "2224:2224" ]
|
2026-06-29 18:20:43 -04:00
|
|
|
verdaccio:
|
|
|
|
|
image: verdaccio/verdaccio:6
|
|
|
|
|
restart: always
|
2026-06-29 23:45:43 -04:00
|
|
|
ports: [ "4873:4873" ]
|
|
|
|
|
volumes: [ /opt/services/verdaccio:/verdaccio/storage ]
|
|
|
|
|
caddy:
|
|
|
|
|
image: caddy:2
|
|
|
|
|
restart: always
|
|
|
|
|
ports: [ "80:80", "443:443" ]
|
|
|
|
|
volumes: [ /opt/services/Caddyfile:/etc/caddy/Caddyfile, /opt/services/caddy-data:/data, /opt/services/caddy-config:/config ]
|
2026-06-29 18:20:43 -04:00
|
|
|
|
|
|
|
|
runcmd:
|
|
|
|
|
- [ bash, -c, "fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile && echo '/swapfile none swap sw 0 0' >> /etc/fstab" ]
|
2026-06-30 02:54:26 -04:00
|
|
|
- [ bash, -c, "mkdir -p /opt/services/ct /opt/services/mc /opt/services/quinn /opt/services/verdaccio && chown -R 1000:1000 /opt/services/ct /opt/services/mc /opt/services/quinn && chown -R 10001:10001 /opt/services/verdaccio" ]
|
2026-06-29 18:20:43 -04:00
|
|
|
- [ systemctl, enable, --now, docker ]
|
|
|
|
|
- [ bash, -c, "cd /opt/services && docker compose up -d" ]
|
|
|
|
|
|
2026-06-29 23:45:43 -04:00
|
|
|
final_message: "com.uvlava.quinn.artifacts up: forges (forge.{ct,mc,quinn}.uvlava.com) + registries via Caddy/TLS"
|