---
services:
  server:
    image: codeberg.org/forgejo/forgejo:7.0.2
    container_name: forgejo
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=db:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=$GITEA__database__PASSWD
    restart: always
    networks:
      - gitea_main
    volumes:
      - /home/ubuntu/forgejo/data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3002:3000"
      - "23:22"
    depends_on:
      - db

  db:
    image: mysql:8
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=$MYSQL_PASSWORD
      - MYSQL_DATABASE=gitea
    networks:
      - gitea_main
    volumes:
      - /home/ubuntu/forgejo/mysql:/var/lib/mysql

  gotify:
    image: docker.mafyuh.xyz/gotify/server-arm7@sha256:b1fff7e7940fbf0526c2cff20df7a0f41d4618ea373fa9f812fb335c3ddb0b98
    container_name: gotify
    ports:
      - 9008:80
    volumes:
      - /docker/appdata/gotify:/app/data
    restart: unless-stopped
    environment:
      - TZ=America/New_York
      - GOTIFY_DEFAULTUSER_NAME=$GOTIFY_DEFAULTUSER_NAME
      - GOTIFY_DEFAULTUSER_PASS=$GOTIFY_DEFAULTUSER_PASS
    networks:
      - gitea_main

  nginx-proxy-manager:
    image: docker.mafyuh.xyz/jc21/nginx-proxy-manager@sha256:84a47c5826a8fc8df54e4cd793b441f02959d5bd9a5214facaa196f314985e27
    container_name: nginx-proxy-manager
    ports:
      - 80:80
      - 81:81
      - 443:443
    volumes:
      - /docker/appdata/nginx/data:/data
      - /docker/appdata/nginx/letsencrypt:/etc/letsencrypt
    restart: unless-stopped
    networks:
      - gitea_main

  uptime-kuma:
    image: docker.mafyuh.xyz/louislam/uptime-kuma@sha256:11842289eb1dce987753d0583c697582162ee5839a3f8f7d1998b48cba0957d5
    container_name: uptime-kuma
    ports:
      - 3001:3001
    volumes:
      - /docker/appdata/kuma:/app/data
    restart: unless-stopped
    networks:
      - gitea_main

  jellyseerr:
    image: docker.mafyuh.xyz/fallenbagel/jellyseerr@sha256:f19b82dae37cd778ff1e805bce958b074aef789ab89e165a2e0d34965cd870bf
    container_name: jellyseerr
    ports:
      - 5055:5055
    volumes:
      - /docker/appdata/jellyseerr:/app/config
    environment:
      - TZ=America/New_York
      - LOG_LEVEL=debug
    restart: unless-stopped
    networks:
      - gitea_main

  linkstack:
    image: docker.mafyuh.xyz/linkstackorg/linkstack@sha256:ad2ec7ffa69f4b04367313d1b95566bb00955b9670eb5467fd4fab39dd1f53c1
    container_name: linkstack
    ports:
      - 8005:80
      - 8006:443
    volumes:
      - linkstack:/htdocs
    environment:
      - HTTP_SERVER_NAME=$HTTP_SERVER_NAME
      - HTTPS_SERVER_NAME=$HTTP_SERVER_NAME
      - SERVER_ADMIN=$SERVER_ADMIN
    restart: unless-stopped
    networks:
      - gitea_main
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    ports:
      - 5678:5678
    volumes:
      - n8n_data:/home/node/.n8n
    environment:
      - GENERIC_TIMEZONE=America/New_York
      - TZ=America/New_York
      - WEBHOOK_URL=$WEBHOOK_URL
    restart: unless-stopped
    networks:
      - gitea_main


networks:
  gitea_main:
    external: true

volumes:
  linkstack:
  n8n_data: