commit 9b1ae78a1cd6f042a0dffa34077871a8df89e03e Author: Debian Date: Thu Jul 23 21:49:18 2026 +0000 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f171918 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Only manually added files +* + +!.gitignore +!*/compose.yaml \ No newline at end of file diff --git a/jellyfin/compose.yaml b/jellyfin/compose.yaml new file mode 100644 index 0000000..a9de07e --- /dev/null +++ b/jellyfin/compose.yaml @@ -0,0 +1,45 @@ +services: + jellyfin: + image: jellyfin/jellyfin:latest + container_name: jellyfin + volumes: + - ./config:/config + - ./cache:/cache + - type: bind + target: /media + source: ./media_mount + - type: bind + source: ./jellyfin-media-remote + target: /media_remote + bind: + propagation: shared + - ./media:/media_old:ro + - ./fonts:/usr/local/share/fonts/custom:ro + restart: unless-stopped + environment: + - JELLYFIN_PublishedServerUrl=https://jelly.foxgirls.date + - TZ=Europe/Warsaw + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:8096/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + networks: + - reverse_proxy_default + logging: + driver: "json-file" + options: + max-size: "50m" + max-file: "3" + +networks: + reverse_proxy_default: + external: true +volumes: + jellyfin-media: + driver: local + driver_opts: + type: "ext4" + device: "/home/debian/jellyfin/media_mount" + o: "bind" \ No newline at end of file diff --git a/nextcloud/Dockerfile b/nextcloud/Dockerfile new file mode 100644 index 0000000..49f0e9f --- /dev/null +++ b/nextcloud/Dockerfile @@ -0,0 +1,5 @@ +FROM nextcloud:34.0.1-apache + +RUN apt-get update && \ + apt-get install -y --no-install-recommends ffmpeg && \ + rm -rf /var/lib/apt/lists/* diff --git a/nextcloud/compose.yaml b/nextcloud/compose.yaml new file mode 100644 index 0000000..8f851dd --- /dev/null +++ b/nextcloud/compose.yaml @@ -0,0 +1,62 @@ + +services: + nextcloud-app: + build: . + container_name: nextcloud_app + restart: unless-stopped + volumes: + - ./nextcloud_data:/var/www/html + environment: + - POSTGRES_HOST=synapse-postgres-1 # Change to your Postgres IP/Hostname + - POSTGRES_DB=${DB_NAME} # Your Postgres DB name + - POSTGRES_USER=${DB_UNAME} # Your Postgres user + - POSTGRES_PASSWORD=${DB_PASS} # Your Postgres password + + - REDIS_HOST=nextcloud-redis + - REDIS_HOST_PASSWORD=${REDIS_PASS} + + - NEXTCLOUD_TEMP_DIRECTORY=/var/www/html/data/tmp + + - OBJECTSTORE_S3_HOST=s3.eu-central-003.backblazeb2.com + - OBJECTSTORE_S3_REGION=eu-central-003 + - OBJECTSTORE_S3_BUCKET=${BUCKET_NAME} + - OBJECTSTORE_S3_KEY=${BUCKET_AKEY} + - OBJECTSTORE_S3_SECRET=${BUCKET_SECRET} + - OBJECTSTORE_S3_PORT=443 + - OBJECTSTORE_S3_SSL=true + - OBJECTSTORE_S3_USEPATHSTYLE=false + depends_on: + - nextcloud-redis + networks: + - postgre-general + - nextcloud-network + - reverse_proxy_default + + nextcloud-redis: + image: redis:alpine # Essential for file locking, uses almost no RAM (~20MB) + container_name: nextcloud_redis + restart: unless-stopped + command: redis-server --requirepass ${REDIS_PASS} + networks: + - nextcloud-network + + nextcloud-cron: + image: nextcloud:latest + container_name: nextcloud_cron + restart: unless-stopped + volumes: + - ./nextcloud_data:/var/www/html + entrypoint: /cron.sh + depends_on: + - nextcloud-app + networks: + - nextcloud-network + - postgre-general + + +networks: + nextcloud-network: + postgre-general: + external: true + reverse_proxy_default: + external: true diff --git a/reverse_proxy/compose.yaml b/reverse_proxy/compose.yaml new file mode 100644 index 0000000..8e83889 --- /dev/null +++ b/reverse_proxy/compose.yaml @@ -0,0 +1,19 @@ +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + environment: + TZ: "UTC" + initialAdminEmail: ${INIT_EMAIL} + initialAdminPassword: ${INIT_PASS} + ports: + - '80:80' + - '443:443' + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + logging: + driver: "json-file" + options: + max-size: "50m" + max-file: "3" diff --git a/start_everything.sh b/start_everything.sh new file mode 100644 index 0000000..dbed567 --- /dev/null +++ b/start_everything.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +#start proxy +docker compose -f ~/reverse_proxy/compose.yaml up -d + +#start kuma +cd ~/uptime-kuma +docker compose -f ~/uptime-kuma/compose.yaml up -d + +#create palworl server, don't start it +docker compose -f ~/palworld/compose.yaml up --no-start -d + +#create matrix server and database +docker compose ~/docker/synapse/compose.yaml up -d + +#start jellyfin +if [[ ! -d ~/jellyfin/jellyfin-media-remote/foxgirls-jelly ]] ; then + printf "Warning: Jellyfin B2 bucket not mounted\n" +fi +docker compose -f ~/jellyfin/compose.yaml up -d + +#start home page +docker compose -f ~/homepage/compose.yaml up -d + +#start gitea +#todo?: make sure database exists +docker compose -f ~/gitea/compose.yaml up -d + +#start nextcloud +#todo?: make sure database exists +docker compose -f ~/nextcloud/compose.yaml up -d