unify: single docker-compose for Synology NAS with amd64 support
Some checks failed
Build & Push Docker Image / build (push) Failing after 5s

This commit is contained in:
Khoa Vo 2026-05-14 12:17:18 +07:00
parent fc74489842
commit e04fbeee13
3 changed files with 28 additions and 68 deletions

View file

@ -1,16 +0,0 @@
version: '3.8'
services:
kv-tube-app-local:
build: .
container_name: kv-tube-app-local
platform: linux/amd64
ports:
- "5012:3000"
- "8080:8080"
volumes:
- ./data:/app/data
environment:
- KVTUBE_DATA_DIR=/app/data
- GIN_MODE=release
- NODE_ENV=production

View file

@ -1,23 +0,0 @@
# KV-Tube Docker Compose for Synology NAS
# Usage: docker-compose up -d
version: '3.8'
services:
kv-tube:
image: git.khoavo.myds.me/vndangkhoa/kv-tube:v9
container_name: kv-tube
platform: linux/amd64
restart: unless-stopped
ports:
- "5011:3000"
- "8981:8080"
volumes:
- ./data:/app/data
environment:
- KVTUBE_DATA_DIR=/app/data
- GIN_MODE=release
- NODE_ENV=production
- CORS_ALLOWED_ORIGINS=https://ut.khoavo.myds.me,http://ut.khoavo.myds.me:5011,http://localhost:3000,http://127.0.0.1:3000
labels:
- "com.centurylinklabs.watchtower.enable=true"

View file

@ -1,53 +1,52 @@
# KV-Tube - Self-hosted YouTube-like Video Streaming Platform # KV-Tube - Unified Docker Compose
# Supports: linux/amd64 (Synology NAS, Linux servers)
#
# Usage: docker-compose up -d # Usage: docker-compose up -d
# #
# For Synology NAS: Uses pre-built image from Forgejo registry
# For local dev: Uncomment 'build' section to build locally
#
# Access: # Access:
# - Frontend: http://localhost:5011 # - Frontend: http://localhost:5011 (or your NAS IP)
# - Backend API: http://localhost:8981 # - Backend API: http://localhost:8981
version: '3.8' version: '3.8'
services: services:
kv-tube: kv-tube:
# Build from local Dockerfile (for first-time setup or development) # Option 1: Use pre-built image (recommended for Synology NAS)
# To use pre-built image, comment out 'build' and use 'image' instead image: git.khoavo.myds.me/vndangkhoa/kv-tube:latest
build:
context: . # Option 2: Build locally (uncomment to use)
dockerfile: Dockerfile # build:
args: # context: .
# API URL for frontend to communicate with backend # dockerfile: Dockerfile
# Change to your NAS IP or domain if accessing remotely
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-http://localhost:8080/api}
# Uncomment below to use pre-built image instead of building:
# image: git.khoavo.myds.me/vndangkhoa/kv-tube:latest
container_name: kv-tube container_name: kv-tube
platform: linux/amd64 # Required for Synology NAS platform: linux/amd64
restart: unless-stopped restart: unless-stopped
ports: ports:
- "5011:3000" # Frontend (Next.js) - "5011:3000" # Frontend (Next.js)
- "8981:8080" # Backend API (Go) - "8981:8080" # Backend API (Go)
volumes: volumes:
- ./data:/app/data # Persistent data (SQLite DB, cache) - ./data:/app/data
environment: environment:
- KVTUBE_DATA_DIR=/app/data - KVTUBE_DATA_DIR=/app/data
- GIN_MODE=release - GIN_MODE=release
- NODE_ENV=production - NODE_ENV=production
# Allow all origins for development - tighten in production # Update these for your domain
- CORS_ALLOWED_ORIGINS=* - FORGEJO__server__ROOT_URL=https://git.khoavo.myds.me/
- FORGEJO__server__DOMAIN=git.khoavo.myds.me
# Enable Watchtower for auto-updates (optional) # CORS - update to your actual domain
- CORS_ALLOWED_ORIGINS=https://ut.khoavo.myds.me,http://ut.khoavo.myds.me:5011,http://localhost:3000,http://127.0.0.1:3000,http://localhost:5011
labels: labels:
- "com.centurylinklabs.watchtower.enable=true" - "com.centurylinklabs.watchtower.enable=true"
# To enable auto-updates with Watchtower, add this service: # Optional: Auto-update with Watchtower
# # Uncomment to enable automatic updates
#
# services: # services:
# watchtower: # watchtower:
# image: containrrr/watchtower # image: containrrr/watchtower
@ -55,4 +54,4 @@ services:
# restart: unless-stopped # restart: unless-stopped
# volumes: # volumes:
# - /var/run/docker.sock:/var/run/docker.sock # - /var/run/docker.sock:/var/run/docker.sock
# command: --interval 86400 kv-tube # Check once daily # command: --interval 86400 kv-tube