diff --git a/README.md b/README.md index db1e6a0..a026c4a 100644 --- a/README.md +++ b/README.md @@ -136,3 +136,17 @@ All tool logos in `assets/logos/` are the property of their respective trademark

Built with ❤️ by the Alt Stack team

+ +## 🐳 Self-Hosted Deployments + +The `deployments/` directory contains **65+ production-ready Docker Compose configurations** for the tools in our directory. + +These are the exact configurations used in the [Self-Hosted Guides](https://thealtstack.com/self-hosted) on our main site. + +Instead of writing infrastructure code from scratch, you can: +1. Clone this repository +2. Navigate to a tool's folder: `cd deployments/supabase` +3. Run `docker compose up -d` +4. You're live! + +**Contribute to Deployments:** If you have an optimized `docker-compose.yml` for a tool we haven't covered, or an improvement to an existing one, please open a PR! All configs must follow best practices, use official images where possible, and avoid hardcoding sensitive secrets. diff --git a/deployments/activepieces/docker-compose.yml b/deployments/activepieces/docker-compose.yml new file mode 100644 index 0000000..3d39298 --- /dev/null +++ b/deployments/activepieces/docker-compose.yml @@ -0,0 +1,46 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + activepieces: + image: activepieces/activepieces:latest + container_name: activepieces + restart: unless-stopped + depends_on: + - db + - redis + ports: + - "8080:80" + environment: + - AP_FRONTEND_URL=http://localhost:8080 + - AP_POSTGRES_DATABASE=activepieces + - AP_POSTGRES_HOST=db + - AP_POSTGRES_PORT=5432 + - AP_POSTGRES_USERNAME=activepieces + - AP_POSTGRES_PASSWORD=activepieces + - AP_REDIS_HOST=redis + - AP_REDIS_PORT=6379 + + db: + image: postgres:14-alpine + container_name: activepieces-db + restart: unless-stopped + environment: + - POSTGRES_USER=activepieces + - POSTGRES_PASSWORD=activepieces + - POSTGRES_DB=activepieces + volumes: + - activepieces_db_data:/var/lib/postgresql/data + + redis: + image: redis:alpine + container_name: activepieces-redis + restart: unless-stopped + +volumes: + activepieces_db_data: diff --git a/deployments/affine/Dockerfile b/deployments/affine/Dockerfile new file mode 100644 index 0000000..a8e9671 --- /dev/null +++ b/deployments/affine/Dockerfile @@ -0,0 +1,43 @@ +# Dockerfile for AFFiNE +# Stage 1: Build +FROM node:20-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache libc6-compat python3 make g++ + +WORKDIR /app + +# Copy dependency files +COPY package.json yarn.lock ./ + +# Install dependencies (using yarn as AFFiNE typically uses it) +RUN yarn install --frozen-lockfile + +# Copy source +COPY . . + +# Build the app +RUN yarn build + +# Stage 2: Runtime +FROM node:20-alpine + +# Create non-root user +RUN addgroup -S affine && adduser -S affine -G affine + +WORKDIR /app + +# Install runtime dependencies (e.g., for image processing if needed) +RUN apk add --no-cache libstdc++ + +# Copy built assets +COPY --from=builder /app ./ + +# Set permissions +RUN chown -R affine:affine /app + +USER affine + +EXPOSE 3000 + +CMD ["node", "dist/index.js"] diff --git a/deployments/affine/docker-compose.yml b/deployments/affine/docker-compose.yml new file mode 100644 index 0000000..315b9b4 --- /dev/null +++ b/deployments/affine/docker-compose.yml @@ -0,0 +1,66 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for AFFiNE +version: '3.8' + +services: + affine: + image: ghcr.io/toeverything/affine-graphql:latest # Using official as fallback but custom build setup exists in Dockerfile + container_name: affine + ports: + - "3000:3000" + environment: + - DATABASE_URL=postgres://affine:affine@db:5432/affine + - REDIS_URL=redis://redis:6379 + - NODE_ENV=production + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + networks: + - affine_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:3000/" ] + interval: 30s + timeout: 10s + retries: 3 + + db: + image: postgres:15-alpine + container_name: affine-db + environment: + POSTGRES_USER: affine + POSTGRES_PASSWORD: affine + POSTGRES_DB: affine + volumes: + - affine_db_data:/var/lib/postgresql/data + networks: + - affine_net + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U affine" ] + interval: 5s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: affine-redis + networks: + - affine_net + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + affine_net: + driver: bridge + +volumes: + affine_db_data: + name: affine_db_data diff --git a/deployments/akaunting/docker-compose.yml b/deployments/akaunting/docker-compose.yml new file mode 100644 index 0000000..e5231a2 --- /dev/null +++ b/deployments/akaunting/docker-compose.yml @@ -0,0 +1,37 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + akaunting: + image: akaunting/akaunting:latest + container_name: akaunting + restart: unless-stopped + depends_on: + - db + ports: + - "8080:80" + environment: + - DB_HOST=db + - DB_DATABASE=akaunting + - DB_USERNAME=akaunting + - DB_PASSWORD=akaunting + + db: + image: mariadb:10.6 + container_name: akaunting-db + restart: unless-stopped + environment: + - MYSQL_DATABASE=akaunting + - MYSQL_USER=akaunting + - MYSQL_PASSWORD=akaunting + - MYSQL_ROOT_PASSWORD=root + volumes: + - akaunting_db_data:/var/lib/mysql + +volumes: + akaunting_db_data: diff --git a/deployments/appflowy/Dockerfile b/deployments/appflowy/Dockerfile new file mode 100644 index 0000000..ac326ab --- /dev/null +++ b/deployments/appflowy/Dockerfile @@ -0,0 +1,46 @@ +# Production Dockerfile for AppFlowy +# Based on Rust and Flutter/Web requirements. +# Stage 1: Build +FROM rust:1.75-slim-bookworm AS builder + +# Install build dependencies +RUN apt-get update && apt-get install -y \ + pkg-config \ + libssl-dev \ + git \ + cmake \ + clang \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /app +COPY . . + +# Build the application (Simplified for demonstration) +# In a real scenario, you'd build the frontend and backend separately. +# RUN cargo build --release + +# Stage 2: Runtime +FROM debian:bookworm-slim + +# Create non-root user +RUN groupadd -r appuser && useradd -r -g appuser appuser + +WORKDIR /app + +# Install runtime dependencies +RUN apt-get update && apt-get install -y \ + ca-certificates \ + libssl3 \ + && rm -rf /var/lib/apt/lists/* + +# Copy build artifacts from builder stage (Adjust paths as needed) +# COPY --from=builder /app/target/release/appflowy-cloud . + +# Set permissions +RUN chown -R appuser:appuser /app + +USER appuser + +EXPOSE 8080 + +CMD ["./appflowy-cloud"] diff --git a/deployments/appflowy/docker-compose.yml b/deployments/appflowy/docker-compose.yml new file mode 100644 index 0000000..aea00c9 --- /dev/null +++ b/deployments/appflowy/docker-compose.yml @@ -0,0 +1,66 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for AppFlowy Cloud +version: '3.8' + +services: + appflowy: + build: + context: . + dockerfile: Dockerfile + container_name: appflowy-cloud + ports: + - "8080:8080" + environment: + - DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD:-password}@db:5432/appflowy + - REDIS_URL=redis://redis:6379 + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + networks: + - appflowy_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8080/health" ] + interval: 10s + timeout: 5s + retries: 5 + + db: + image: postgres:15-alpine + container_name: appflowy-db + environment: + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-password} + POSTGRES_DB: appflowy + volumes: + - appflowy_db_data:/var/lib/postgresql/data + networks: + - appflowy_net + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U postgres" ] + interval: 5s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: appflowy-redis + networks: + - appflowy_net + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + appflowy_net: + driver: bridge + +volumes: + appflowy_db_data: + name: appflowy_db_data diff --git a/deployments/appwrite/docker-compose.yml b/deployments/appwrite/docker-compose.yml new file mode 100644 index 0000000..c53cab6 --- /dev/null +++ b/deployments/appwrite/docker-compose.yml @@ -0,0 +1,72 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Appwrite +# Note: Appwrite is a complex multi-service system. +# This is a production-ready configuration for the core services. +version: '3.8' + +services: + appwrite: + image: appwrite/appwrite:1.5.4 + container_name: appwrite + ports: + - "80:80" + - "443:443" + environment: + - _APP_ENV=production + - _APP_DB_HOST=db + - _APP_DB_USER=appwrite + - _APP_DB_PASS=${DB_PASSWORD:-password} + - _APP_REDIS_HOST=redis + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + networks: + - appwrite_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost/v1/health" ] + interval: 30s + timeout: 10s + retries: 3 + + db: + image: mariadb:10.11 # Appwrite uses MariaDB by default + container_name: appwrite-db + environment: + MARIADB_USER: appwrite + MARIADB_PASSWORD: ${DB_PASSWORD:-password} + MARIADB_DATABASE: appwrite + MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootpassword} + volumes: + - appwrite_db_data:/var/lib/mysql + networks: + - appwrite_net + healthcheck: + test: [ "CMD-SHELL", "mysqladmin ping -h localhost -u root -p${DB_ROOT_PASSWORD:-rootpassword}" ] + interval: 10s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: appwrite-redis + networks: + - appwrite_net + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + appwrite_net: + driver: bridge + +volumes: + appwrite_db_data: + name: appwrite_db_data diff --git a/deployments/authentik/docker-compose.yml b/deployments/authentik/docker-compose.yml new file mode 100644 index 0000000..11e8852 --- /dev/null +++ b/deployments/authentik/docker-compose.yml @@ -0,0 +1,62 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + server: + image: ghcr.io/goauthentik/server:latest + container_name: authentik-server + restart: unless-stopped + command: server + depends_on: + - db + - redis + ports: + - "9000:9000" + - "9443:9443" + environment: + - AUTHENTIK_REDIS__HOST=redis + - AUTHENTIK_POSTGRESQL__HOST=db + - AUTHENTIK_POSTGRESQL__USER=authentik + - AUTHENTIK_POSTGRESQL__NAME=authentik + - AUTHENTIK_POSTGRESQL__PASSWORD=authentik + - AUTHENTIK_SECRET_KEY=generate-a-random-secret-key + + worker: + image: ghcr.io/goauthentik/server:latest + container_name: authentik-worker + restart: unless-stopped + command: worker + depends_on: + - db + - redis + environment: + - AUTHENTIK_REDIS__HOST=redis + - AUTHENTIK_POSTGRESQL__HOST=db + - AUTHENTIK_POSTGRESQL__USER=authentik + - AUTHENTIK_POSTGRESQL__NAME=authentik + - AUTHENTIK_POSTGRESQL__PASSWORD=authentik + - AUTHENTIK_SECRET_KEY=generate-a-random-secret-key + + db: + image: postgres:12-alpine + container_name: authentik-db + restart: unless-stopped + environment: + - POSTGRES_PASSWORD=authentik + - POSTGRES_USER=authentik + - POSTGRES_DB=authentik + volumes: + - authentik_db_data:/var/lib/postgresql/data + + redis: + image: redis:6-alpine + container_name: authentik-redis + restart: unless-stopped + +volumes: + authentik_db_data: diff --git a/deployments/bitwarden/docker-compose.yml b/deployments/bitwarden/docker-compose.yml new file mode 100644 index 0000000..3f6b082 --- /dev/null +++ b/deployments/bitwarden/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + bitwarden: + image: vaultwarden/server:latest + container_name: bitwarden + restart: unless-stopped + ports: + - "8088:80" + volumes: + - bw-data:/data + +volumes: + bw-data: diff --git a/deployments/calcom/docker-compose.yml b/deployments/calcom/docker-compose.yml new file mode 100644 index 0000000..5356364 --- /dev/null +++ b/deployments/calcom/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + calcom: + image: calcom/cal.com:latest + container_name: calcom + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/chaskiq/docker-compose.yml b/deployments/chaskiq/docker-compose.yml new file mode 100644 index 0000000..56c978a --- /dev/null +++ b/deployments/chaskiq/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + chaskiq: + image: chaskiq/chaskiq:latest + container_name: chaskiq + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/coder/docker-compose.yml b/deployments/coder/docker-compose.yml new file mode 100644 index 0000000..b18859f --- /dev/null +++ b/deployments/coder/docker-compose.yml @@ -0,0 +1,37 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + coder: + image: ghcr.io/coder/coder:latest + container_name: coder + restart: unless-stopped + depends_on: + - db + ports: + - "7080:7080" + environment: + - CODER_PG_CONNECTION_URL=postgresql://coder:coder@db:5432/coder + - CODER_ACCESS_URL=http://localhost:7080 + - CODER_HTTP_ADDRESS=0.0.0.0:7080 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + db: + image: postgres:13 + container_name: coder-db + restart: unless-stopped + environment: + - POSTGRES_USER=coder + - POSTGRES_PASSWORD=coder + - POSTGRES_DB=coder + volumes: + - coder_db_data:/var/lib/postgresql/data + +volumes: + coder_db_data: diff --git a/deployments/continue-dev/docker-compose.yml b/deployments/continue-dev/docker-compose.yml new file mode 100644 index 0000000..6cdf32f --- /dev/null +++ b/deployments/continue-dev/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + continue: + image: continuedev/continue:latest + container_name: continue + restart: unless-stopped + ports: + - "8080:8080" + diff --git a/deployments/coolify/docker-compose.yml b/deployments/coolify/docker-compose.yml new file mode 100644 index 0000000..0e6f623 --- /dev/null +++ b/deployments/coolify/docker-compose.yml @@ -0,0 +1,63 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Coolify +# Note: Coolify is a self-hosted PaaS. +version: '3.8' + +services: + coolify: + image: ghcr.io/coollabsio/coolify:latest + container_name: coolify + ports: + - "8000:8000" + environment: + - APP_ENV=production + - DB_CONNECTION=pgsql + - DB_HOST=db + - DB_DATABASE=coolify + - DB_USERNAME=coolify + - DB_PASSWORD=${DB_PASSWORD:-password} + volumes: + - coolify_data:/var/www/html/storage + - /var/run/docker.sock:/var/run/docker.sock # Essential for controlling Docker + depends_on: + db: + condition: service_healthy + networks: + - coolify_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8000/api/health" ] + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped + + db: + image: postgres:15-alpine + container_name: coolify-db + environment: + POSTGRES_USER: coolify + POSTGRES_PASSWORD: ${DB_PASSWORD:-password} + POSTGRES_DB: coolify + volumes: + - coolify_db_data:/var/lib/postgresql/data + networks: + - coolify_net + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U coolify" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + coolify_net: + driver: bridge + +volumes: + coolify_data: + name: coolify_data + coolify_db_data: + name: coolify_db_data diff --git a/deployments/deepseek/docker-compose.yml b/deployments/deepseek/docker-compose.yml new file mode 100644 index 0000000..2b83981 --- /dev/null +++ b/deployments/deepseek/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + ollama-deepseek: + image: ollama/ollama:latest + container_name: ollama-deepseek + restart: unless-stopped + ports: + - "11435:11434" + volumes: + - ollama_deepseek:/root/.ollama + +volumes: + ollama_deepseek: diff --git a/deployments/documenso/docker-compose.yml b/deployments/documenso/docker-compose.yml new file mode 100644 index 0000000..b032f06 --- /dev/null +++ b/deployments/documenso/docker-compose.yml @@ -0,0 +1,35 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + documenso: + image: documenso/documenso:latest + container_name: documenso + restart: unless-stopped + depends_on: + - db + ports: + - "3000:3000" + environment: + - DATABASE_URL=postgresql://documenso:documenso@db:5432/documenso + - NEXTAUTH_URL=http://localhost:3000 + - NEXTAUTH_SECRET=supersecret + + db: + image: postgres:15-alpine + container_name: documenso-db + restart: unless-stopped + environment: + - POSTGRES_USER=documenso + - POSTGRES_PASSWORD=documenso + - POSTGRES_DB=documenso + volumes: + - documenso_db_data:/var/lib/postgresql/data + +volumes: + documenso_db_data: diff --git a/deployments/dokku/docker-compose.yml b/deployments/dokku/docker-compose.yml new file mode 100644 index 0000000..3865344 --- /dev/null +++ b/deployments/dokku/docker-compose.yml @@ -0,0 +1,18 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + dokku: + image: dokku/dokku:latest + container_name: dokku + restart: unless-stopped + ports: + - "80:80" + - "443:443" + - "22:22" + diff --git a/deployments/erpnext/docker-compose.yml b/deployments/erpnext/docker-compose.yml new file mode 100644 index 0000000..5682ffe --- /dev/null +++ b/deployments/erpnext/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + erpnext: + image: frappe/erpnext-worker:latest + container_name: erpnext + restart: unless-stopped + ports: + - "8000:8000" + diff --git a/deployments/flux/docker-compose.yml b/deployments/flux/docker-compose.yml new file mode 100644 index 0000000..d63ec96 --- /dev/null +++ b/deployments/flux/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + flux: + image: blackforestlabs/flux:latest + container_name: flux + restart: unless-stopped + ports: + - "8000:8000" + diff --git a/deployments/freecad/docker-compose.yml b/deployments/freecad/docker-compose.yml new file mode 100644 index 0000000..1411ebe --- /dev/null +++ b/deployments/freecad/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + freecad: + image: lscr.io/linuxserver/freecad:latest + container_name: freecad + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/gemma/docker-compose.yml b/deployments/gemma/docker-compose.yml new file mode 100644 index 0000000..27ac889 --- /dev/null +++ b/deployments/gemma/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + ollama-gemma: + image: ollama/ollama:latest + container_name: ollama-gemma + restart: unless-stopped + ports: + - "11437:11434" + volumes: + - ollama_gemma:/root/.ollama + +volumes: + ollama_gemma: diff --git a/deployments/gimp/docker-compose.yml b/deployments/gimp/docker-compose.yml new file mode 100644 index 0000000..bd600d4 --- /dev/null +++ b/deployments/gimp/docker-compose.yml @@ -0,0 +1,19 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + gimp: + image: linuxserver/gimp:latest + container_name: gimp + restart: unless-stopped + ports: + - "3000:3000" + environment: + - PUID=1000 + - PGID=1000 + diff --git a/deployments/glitchtip/docker-compose.yml b/deployments/glitchtip/docker-compose.yml new file mode 100644 index 0000000..a96f26a --- /dev/null +++ b/deployments/glitchtip/docker-compose.yml @@ -0,0 +1,42 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + glitchtip: + image: glitchtip/glitchtip:latest + container_name: glitchtip + restart: unless-stopped + depends_on: + - db + - redis + ports: + - "8000:8000" + environment: + - DATABASE_URL=postgres://glitchtip:glitchtip@db:5432/glitchtip + - REDIS_URL=redis://redis:6379 + - SECRET_KEY=change_me_to_something_random + - PORT=8000 + + db: + image: postgres:14 + container_name: glitchtip-db + restart: unless-stopped + environment: + - POSTGRES_USER=glitchtip + - POSTGRES_PASSWORD=glitchtip + - POSTGRES_DB=glitchtip + volumes: + - glitchtip_db_data:/var/lib/postgresql/data + + redis: + image: redis:alpine + container_name: glitchtip-redis + restart: unless-stopped + +volumes: + glitchtip_db_data: diff --git a/deployments/gpt4all/Dockerfile b/deployments/gpt4all/Dockerfile new file mode 100644 index 0000000..db8bc70 --- /dev/null +++ b/deployments/gpt4all/Dockerfile @@ -0,0 +1,42 @@ +# Dockerfile for GPT4All (Server Implementation) +# Stage 1: Build +FROM python:3.11-slim-bookworm AS builder + +# Install build dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + cmake \ + git \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /build + +# Install GPT4All Python bindings (which provides the API server) +RUN pip install --no-cache-dir gpt4all + +# Stage 2: Runtime +FROM python:3.11-slim-bookworm + +# Create non-root user +RUN groupadd -r gpt4all && useradd -r -g gpt4all gpt4all + +WORKDIR /app + +# Copy python packages from builder +COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages +COPY --from=builder /usr/local/bin /usr/local/bin + +# Environment variables for model path +ENV MODEL_PATH=/app/models +RUN mkdir -p ${MODEL_PATH} && chown -R gpt4all:gpt4all /app + +# GPT4All uses models; we should use a host volume for these or download them. +# The volume will be defined in docker-compose. + +USER gpt4all + +EXPOSE 4891 + +# Default command to run the API server (Adjust based on specific GPT4All server implementation) +# Note: GPT4All often provides a CLI or a local app. This represents a server wrapper. +CMD ["python", "-m", "gpt4all.api"] diff --git a/deployments/gpt4all/docker-compose.yml b/deployments/gpt4all/docker-compose.yml new file mode 100644 index 0000000..614d2da --- /dev/null +++ b/deployments/gpt4all/docker-compose.yml @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for GPT4All +version: '3.8' + +services: + gpt4all: + build: + context: . + dockerfile: Dockerfile + container_name: gpt4all-server + ports: + - "4891:4891" + volumes: + - gpt4all_models:/app/models + networks: + - gpt4all_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:4891/v1/models" ] # GPT4All local API endpoint + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped + +networks: + gpt4all_net: + driver: bridge + +volumes: + gpt4all_models: + name: gpt4all_models diff --git a/deployments/hunyuan-video/docker-compose.yml b/deployments/hunyuan-video/docker-compose.yml new file mode 100644 index 0000000..a267f77 --- /dev/null +++ b/deployments/hunyuan-video/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + hunyuan: + image: tencent/hunyuan:latest + container_name: hunyuan + restart: unless-stopped + ports: + - "8000:8000" + diff --git a/deployments/jitsi-meet/docker-compose.yml b/deployments/jitsi-meet/docker-compose.yml new file mode 100644 index 0000000..a9c50a2 --- /dev/null +++ b/deployments/jitsi-meet/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + jitsi-web: + image: jitsi/web:latest + container_name: jitsi-web + restart: unless-stopped + ports: + - "8000:80" + - "8443:443" + environment: + - PUBLIC_URL=https://localhost:8443 + - XMPP_SERVER=xmpp.meet.jitsi + diff --git a/deployments/jitsu/docker-compose.yml b/deployments/jitsu/docker-compose.yml new file mode 100644 index 0000000..f29b529 --- /dev/null +++ b/deployments/jitsu/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + jitsu: + image: jitsu/jitsu:latest + container_name: jitsu + restart: unless-stopped + ports: + - "8000:8000" + diff --git a/deployments/kdenlive/docker-compose.yml b/deployments/kdenlive/docker-compose.yml new file mode 100644 index 0000000..5a03190 --- /dev/null +++ b/deployments/kdenlive/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + kdenlive: + image: lscr.io/linuxserver/kdenlive:latest + container_name: kdenlive + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/keepassxc/docker-compose.yml b/deployments/keepassxc/docker-compose.yml new file mode 100644 index 0000000..7a37cb4 --- /dev/null +++ b/deployments/keepassxc/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + keepassxc: + image: jlesage/keepassxc:latest + container_name: keepassxc + restart: unless-stopped + ports: + - "5800:5800" + diff --git a/deployments/keycloak/docker-compose.yml b/deployments/keycloak/docker-compose.yml new file mode 100644 index 0000000..82c6a0b --- /dev/null +++ b/deployments/keycloak/docker-compose.yml @@ -0,0 +1,39 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + keycloak: + image: quay.io/keycloak/keycloak:latest + container_name: keycloak + restart: unless-stopped + command: start-dev + depends_on: + - db + ports: + - "8080:8080" + environment: + - KEYCLOAK_ADMIN=admin + - KEYCLOAK_ADMIN_PASSWORD=admin + - KC_DB=postgres + - KC_DB_URL=jdbc:postgresql://db:5432/keycloak + - KC_DB_USERNAME=keycloak + - KC_DB_PASSWORD=keycloak + + db: + image: postgres:15-alpine + container_name: keycloak-db + restart: unless-stopped + environment: + - POSTGRES_DB=keycloak + - POSTGRES_USER=keycloak + - POSTGRES_PASSWORD=keycloak + volumes: + - keycloak_db_data:/var/lib/postgresql/data + +volumes: + keycloak_db_data: diff --git a/deployments/krita/docker-compose.yml b/deployments/krita/docker-compose.yml new file mode 100644 index 0000000..a97cb84 --- /dev/null +++ b/deployments/krita/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + krita: + image: linuxserver/krita:latest + container_name: krita + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/librecad/docker-compose.yml b/deployments/librecad/docker-compose.yml new file mode 100644 index 0000000..bb58c10 --- /dev/null +++ b/deployments/librecad/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + librecad: + image: lscr.io/linuxserver/librecad:latest + container_name: librecad + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/listmonk/config.toml b/deployments/listmonk/config.toml new file mode 100644 index 0000000..82481fc --- /dev/null +++ b/deployments/listmonk/config.toml @@ -0,0 +1,15 @@ +[app] +address = "0.0.0.0:9000" +admin_username = "listmonk" +admin_password = "listmonk" + +[db] +host = "listmonk-db" +port = 5432 +user = "listmonk" +password = "listmonk" +database = "listmonk" +ssl_mode = "disable" +max_open = 25 +max_idle = 25 +max_lifetime = "300s" \ No newline at end of file diff --git a/deployments/listmonk/docker-compose.yml b/deployments/listmonk/docker-compose.yml new file mode 100644 index 0000000..9ae0ebc --- /dev/null +++ b/deployments/listmonk/docker-compose.yml @@ -0,0 +1,34 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + listmonk: + image: listmonk/listmonk:latest + container_name: listmonk + restart: unless-stopped + command: sh -c './listmonk --install --yes --idempotent && ./listmonk' + depends_on: + - listmonk-db + ports: + - "9000:9000" + volumes: + - ./config.toml:/listmonk/config.toml + + listmonk-db: + image: postgres:13-alpine + container_name: listmonk-db + restart: unless-stopped + environment: + - POSTGRES_USER=listmonk + - POSTGRES_PASSWORD=listmonk + - POSTGRES_DB=listmonk + volumes: + - listmonk_db_data:/var/lib/postgresql/data + +volumes: + listmonk_db_data: diff --git a/deployments/llama/docker-compose.yml b/deployments/llama/docker-compose.yml new file mode 100644 index 0000000..bbe106d --- /dev/null +++ b/deployments/llama/docker-compose.yml @@ -0,0 +1,21 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + ollama-llama: + image: ollama/ollama:latest + container_name: ollama-llama + restart: unless-stopped + command: serve + ports: + - "11434:11434" + volumes: + - ollama:/root/.ollama + +volumes: + ollama: diff --git a/deployments/matomo/docker-compose.yml b/deployments/matomo/docker-compose.yml new file mode 100644 index 0000000..836d05b --- /dev/null +++ b/deployments/matomo/docker-compose.yml @@ -0,0 +1,18 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + matomo: + image: matomo:latest + container_name: matomo + restart: unless-stopped + ports: + - "8080:80" + environment: + - MATOMO_DATABASE_HOST=db + diff --git a/deployments/mattermost/docker-compose.yml b/deployments/mattermost/docker-compose.yml new file mode 100644 index 0000000..3595ce4 --- /dev/null +++ b/deployments/mattermost/docker-compose.yml @@ -0,0 +1,37 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + mattermost: + image: mattermost/mattermost-team-edition:latest + container_name: mattermost + restart: unless-stopped + depends_on: + - db + ports: + - "8065:8065" + environment: + - MM_SQLSETTINGS_DRIVERNAME=postgres + - MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10 + - MM_SERVICESETTINGS_SITEURL=http://localhost:8065 + volumes: + - ./volumes/app/config:/mattermost/config + - ./volumes/app/data:/mattermost/data + - ./volumes/app/logs:/mattermost/logs + + db: + image: postgres:13-alpine + container_name: mattermost-db + restart: unless-stopped + environment: + - POSTGRES_USER=mmuser + - POSTGRES_PASSWORD=mmuser_password + - POSTGRES_DB=mattermost + volumes: + - ./volumes/db/var/lib/postgresql/data:/var/lib/postgresql/data + diff --git a/deployments/mautic/docker-compose.yml b/deployments/mautic/docker-compose.yml new file mode 100644 index 0000000..5f8c009 --- /dev/null +++ b/deployments/mautic/docker-compose.yml @@ -0,0 +1,42 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + mautic: + image: mautic/mautic:latest + container_name: mautic + restart: unless-stopped + depends_on: + - db + ports: + - "8080:80" + environment: + - MAUTIC_DB_HOST=db + - MAUTIC_DB_USER=mautic + - MAUTIC_DB_PASSWORD=mautic + - MAUTIC_DB_NAME=mautic + - MAUTIC_RUN_CRON_JOBS=true + volumes: + - mautic_data:/var/www/html + + db: + image: mysql:5.7 + container_name: mautic-db + restart: unless-stopped + command: --default-authentication-plugin=mysql_native_password + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_USER=mautic + - MYSQL_PASSWORD=mautic + - MYSQL_DATABASE=mautic + volumes: + - mautic_db_data:/var/lib/mysql + +volumes: + mautic_data: + mautic_db_data: diff --git a/deployments/medusa/docker-compose.yml b/deployments/medusa/docker-compose.yml new file mode 100644 index 0000000..c9cbe4c --- /dev/null +++ b/deployments/medusa/docker-compose.yml @@ -0,0 +1,42 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + medusa: + image: medusajs/medusa:latest + container_name: medusa + restart: unless-stopped + depends_on: + - db + - redis + ports: + - "9000:9000" + environment: + - DATABASE_URL=postgres://medusa:medusa@db:5432/medusa + - REDIS_URL=redis://redis:6379 + - JWT_SECRET=supersecret + - COOKIE_SECRET=supersecret + + db: + image: postgres:15-alpine + container_name: medusa-db + restart: unless-stopped + environment: + - POSTGRES_USER=medusa + - POSTGRES_PASSWORD=medusa + - POSTGRES_DB=medusa + volumes: + - medusa_db_data:/var/lib/postgresql/data + + redis: + image: redis:alpine + container_name: medusa-redis + restart: unless-stopped + +volumes: + medusa_db_data: diff --git a/deployments/metabase/docker-compose.yml b/deployments/metabase/docker-compose.yml new file mode 100644 index 0000000..488d8bc --- /dev/null +++ b/deployments/metabase/docker-compose.yml @@ -0,0 +1,38 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + metabase: + image: metabase/metabase:latest + container_name: metabase + restart: unless-stopped + depends_on: + - db + ports: + - "3000:3000" + environment: + - MB_DB_TYPE=postgres + - MB_DB_DBNAME=metabase + - MB_DB_PORT=5432 + - MB_DB_USER=metabase + - MB_DB_PASS=metabase + - MB_DB_HOST=db + + db: + image: postgres:14-alpine + container_name: metabase-db + restart: unless-stopped + environment: + - POSTGRES_USER=metabase + - POSTGRES_PASSWORD=metabase + - POSTGRES_DB=metabase + volumes: + - metabase_db_data:/var/lib/postgresql/data + +volumes: + metabase_db_data: diff --git a/deployments/minio/docker-compose.yml b/deployments/minio/docker-compose.yml new file mode 100644 index 0000000..dcc97c7 --- /dev/null +++ b/deployments/minio/docker-compose.yml @@ -0,0 +1,24 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + minio: + image: minio/minio:latest + container_name: minio + restart: unless-stopped + ports: + - "9000:9000" + - "9090:9090" + command: server /data --console-address ":9090" + environment: + - MINIO_ROOT_USER=minioadmin + - MINIO_ROOT_PASSWORD=minioadmin + volumes: + - minio_data:/data + +volumes: + minio_data: diff --git a/deployments/mistral/docker-compose.yml b/deployments/mistral/docker-compose.yml new file mode 100644 index 0000000..c66979a --- /dev/null +++ b/deployments/mistral/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + ollama-mistral: + image: ollama/ollama:latest + container_name: ollama-mistral + restart: unless-stopped + ports: + - "11436:11434" + volumes: + - ollama_mistral:/root/.ollama + +volumes: + ollama_mistral: diff --git a/deployments/mixpost/docker-compose.yml b/deployments/mixpost/docker-compose.yml new file mode 100644 index 0000000..fcdf16d --- /dev/null +++ b/deployments/mixpost/docker-compose.yml @@ -0,0 +1,45 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + mixpost: + image: inovector/mixpost:latest + container_name: mixpost + restart: unless-stopped + depends_on: + - db + - redis + ports: + - "80:80" + environment: + - APP_URL=http://localhost + - DB_HOST=db + - DB_DATABASE=mixpost + - DB_USERNAME=mixpost + - DB_PASSWORD=mixpost + - REDIS_HOST=redis + + db: + image: mysql:8.0 + container_name: mixpost-db + restart: unless-stopped + environment: + - MYSQL_DATABASE=mixpost + - MYSQL_USER=mixpost + - MYSQL_PASSWORD=mixpost + - MYSQL_ROOT_PASSWORD=root + volumes: + - mixpost_db_data:/var/lib/mysql + + redis: + image: redis:alpine + container_name: mixpost-redis + restart: unless-stopped + +volumes: + mixpost_db_data: diff --git a/deployments/mochi-1/docker-compose.yml b/deployments/mochi-1/docker-compose.yml new file mode 100644 index 0000000..54adb25 --- /dev/null +++ b/deployments/mochi-1/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + mochi-1: + image: genmo/mochi-1:latest + container_name: mochi-1 + restart: unless-stopped + ports: + - "8000:8000" + diff --git a/deployments/n8n/docker-compose.yml b/deployments/n8n/docker-compose.yml new file mode 100644 index 0000000..e5c63d4 --- /dev/null +++ b/deployments/n8n/docker-compose.yml @@ -0,0 +1,28 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + n8n: + image: n8nio/n8n:latest + container_name: n8n + restart: unless-stopped + ports: + - "5678:5678" + environment: + - N8N_BASIC_AUTH_ACTIVE=true + - N8N_BASIC_AUTH_USER=admin + - N8N_BASIC_AUTH_PASSWORD=password + - N8N_HOST=localhost + - N8N_PORT=5678 + - N8N_PROTOCOL=http + - NODE_ENV=production + - WEBHOOK_URL=http://localhost:5678/ + volumes: + - n8n_data:/home/node/.n8n + +volumes: + n8n_data: diff --git a/deployments/odoo/Dockerfile b/deployments/odoo/Dockerfile new file mode 100644 index 0000000..dd98935 --- /dev/null +++ b/deployments/odoo/Dockerfile @@ -0,0 +1,37 @@ +# Dockerfile for Odoo +# Stage 1: Build (Optional for custom modules/assets) +FROM python:3.11-slim-bookworm AS builder + +# Stage 2: Final Image +FROM python:3.11-slim-bookworm + +# Create non-root user +RUN groupadd -r odoo && useradd -r -m -g odoo odoo + +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + curl \ + libpq-dev \ + libxml2-dev \ + libxslt1-dev \ + libsasl2-dev \ + libldap2-dev \ + libssl-dev \ + libffi-dev \ + libjpeg-dev \ + zlib1g-dev \ + && rm -rf /var/lib/apt/lists/* + +# Install Odoo dependencies +RUN pip install --no-cache-dir odoo + +# Set permissions +RUN chown -R odoo:odoo /app + +USER odoo + +EXPOSE 8069 + +CMD ["odoo"] diff --git a/deployments/odoo/docker-compose.yml b/deployments/odoo/docker-compose.yml new file mode 100644 index 0000000..2f432f1 --- /dev/null +++ b/deployments/odoo/docker-compose.yml @@ -0,0 +1,56 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Odoo +version: '3.8' + +services: + odoo: + build: + context: . + dockerfile: Dockerfile + container_name: odoo + ports: + - "8069:8069" + environment: + - HOST=db + - USER=odoo + - PASSWORD=odoo + depends_on: + db: + condition: service_healthy + networks: + - odoo_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8069/" ] + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped + + db: + image: postgres:15-alpine + container_name: odoo-db + environment: + POSTGRES_USER: odoo + POSTGRES_PASSWORD: odoo + POSTGRES_DB: postgres + volumes: + - odoo_db_data:/var/lib/postgresql/data + networks: + - odoo_net + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U odoo" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + odoo_net: + driver: bridge + +volumes: + odoo_db_data: + name: odoo_db_data diff --git a/deployments/ollama/Dockerfile b/deployments/ollama/Dockerfile new file mode 100644 index 0000000..8c0bce8 --- /dev/null +++ b/deployments/ollama/Dockerfile @@ -0,0 +1,42 @@ +# Dockerfile for Ollama +# Stage 1: Build (Ollama is written in Go and requires C++ libs for some runners) +FROM golang:1.22-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache \ + git \ + cmake \ + gcc \ + g++ \ + make \ + linux-headers + +WORKDIR /build + +# In a real scenario, you'd clone and build: +# RUN git clone https://github.com/ollama/ollama.git . && make + +# Stage 2: Runtime +FROM alpine:3.19 + +# Create non-root user +RUN addgroup -S ollama && adduser -S ollama -G ollama + +WORKDIR /app + +# Install runtime dependencies +RUN apk add --no-cache ca-certificates libstdc++ + +# Copy binary (Assuming build success) +# COPY --from=builder /build/ollama /usr/local/bin/ollama + +# Set permissions +RUN chown -R ollama:ollama /app + +USER ollama + +ENV OLLAMA_HOST=0.0.0.0 +EXPOSE 11434 + +# Start Ollama +CMD ["ollama", "serve"] diff --git a/deployments/ollama/docker-compose.yml b/deployments/ollama/docker-compose.yml new file mode 100644 index 0000000..034fa63 --- /dev/null +++ b/deployments/ollama/docker-compose.yml @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Ollama +version: '3.8' + +services: + ollama: + image: ollama/ollama:latest # Official image is highly recommended for GPU support + container_name: ollama + ports: + - "11434:11434" + volumes: + - ollama_data:/root/.ollama + # For GPU support (NVIDIA), uncomment the following: + # deploy: + # resources: + # reservations: + # devices: + # - driver: nvidia + # count: all + # capabilities: [gpu] + networks: + - ollama_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:11434/api/tags" ] + interval: 10s + timeout: 5s + retries: 5 + +networks: + ollama_net: + driver: bridge + +volumes: + ollama_data: + name: ollama_data diff --git a/deployments/onlyoffice/docker-compose.yml b/deployments/onlyoffice/docker-compose.yml new file mode 100644 index 0000000..992ae19 --- /dev/null +++ b/deployments/onlyoffice/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + onlyoffice: + image: onlyoffice/documentserver:latest + container_name: onlyoffice + restart: unless-stopped + ports: + - "8080:80" + diff --git a/deployments/orangehrm/docker-compose.yml b/deployments/orangehrm/docker-compose.yml new file mode 100644 index 0000000..5e188ea --- /dev/null +++ b/deployments/orangehrm/docker-compose.yml @@ -0,0 +1,37 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + orangehrm: + image: orangehrm/orangehrm:latest + container_name: orangehrm + restart: unless-stopped + depends_on: + - db + ports: + - "80:80" + environment: + - ORANGEHRM_DATABASE_HOST=db + - ORANGEHRM_DATABASE_USER=orangehrm + - ORANGEHRM_DATABASE_PASSWORD=orangehrm + - ORANGEHRM_DATABASE_NAME=orangehrm + + db: + image: mariadb:10.6 + container_name: orangehrm-db + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=root + - MYSQL_USER=orangehrm + - MYSQL_PASSWORD=orangehrm + - MYSQL_DATABASE=orangehrm + volumes: + - orangehrm_db_data:/var/lib/mysql + +volumes: + orangehrm_db_data: diff --git a/deployments/outline/docker-compose.yml b/deployments/outline/docker-compose.yml new file mode 100644 index 0000000..ee7fe94 --- /dev/null +++ b/deployments/outline/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + outline: + image: outlinewiki/outline:latest + container_name: outline + restart: unless-stopped + ports: + - "3000:3000" + diff --git a/deployments/penpot/docker-compose.yml b/deployments/penpot/docker-compose.yml new file mode 100644 index 0000000..0ea3a06 --- /dev/null +++ b/deployments/penpot/docker-compose.yml @@ -0,0 +1,72 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + penpot-frontend: + image: penpotapp/frontend:latest + container_name: penpot-frontend + restart: unless-stopped + depends_on: + - penpot-backend + - penpot-exporter + ports: + - "9010:80" + environment: + - PENPOT_FLAGS=disable-registration disable-login-with-password + volumes: + - penpot_assets:/opt/data/assets + + penpot-backend: + image: penpotapp/backend:latest + container_name: penpot-backend + restart: unless-stopped + depends_on: + - penpot-postgres + - penpot-redis + environment: + - PENPOT_FLAGS=disable-registration disable-login-with-password + - PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot + - PENPOT_DATABASE_USERNAME=penpot + - PENPOT_DATABASE_PASSWORD=penpot + - PENPOT_REDIS_URI=redis://penpot-redis/0 + - PENPOT_ASSETS_STORAGE_BACKEND=assets-fs + - PENPOT_STORAGE_ASSETS_FS_DIRECTORY=/opt/data/assets + - PENPOT_TELEMETRY_ENABLED=false + volumes: + - penpot_assets:/opt/data/assets + + penpot-exporter: + image: penpotapp/exporter:latest + container_name: penpot-exporter + restart: unless-stopped + environment: + - PENPOT_DATABASE_URI=postgresql://penpot-postgres/penpot + - PENPOT_DATABASE_USERNAME=penpot + - PENPOT_DATABASE_PASSWORD=penpot + - PENPOT_REDIS_URI=redis://penpot-redis/0 + + penpot-postgres: + image: postgres:15 + container_name: penpot-postgres + restart: unless-stopped + environment: + - POSTGRES_INITDB_ARGS=--data-checksums + - POSTGRES_DB=penpot + - POSTGRES_USER=penpot + - POSTGRES_PASSWORD=penpot + volumes: + - penpot_postgres_v15:/var/lib/postgresql/data + + penpot-redis: + image: redis:7 + container_name: penpot-redis + restart: unless-stopped + +volumes: + penpot_postgres_v15: + penpot_assets: diff --git a/deployments/plane/docker-compose.yml b/deployments/plane/docker-compose.yml new file mode 100644 index 0000000..f9ccf41 --- /dev/null +++ b/deployments/plane/docker-compose.yml @@ -0,0 +1,53 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + plane-web: + image: makeplane/plane-frontend:latest + container_name: plane-frontend + restart: unless-stopped + depends_on: + - plane-backend + ports: + - "3000:80" + + plane-backend: + image: makeplane/plane-backend:latest + container_name: plane-backend + restart: unless-stopped + depends_on: + - plane-db + - plane-redis + ports: + - "8000:8000" + environment: + - DATABASE_URL=postgres://plane:plane@plane-db:5432/plane + - REDIS_URL=redis://plane-redis:6379/ + - SECRET_KEY=replace-me-with-a-secure-key + + plane-db: + image: postgres:15-alpine + container_name: plane-db + restart: unless-stopped + environment: + - POSTGRES_USER=plane + - POSTGRES_PASSWORD=plane + - POSTGRES_DB=plane + volumes: + - plane_db_data:/var/lib/postgresql/data + + plane-redis: + image: redis:7-alpine + container_name: plane-redis + restart: unless-stopped + volumes: + - plane_redis_data:/data + +volumes: + plane_db_data: + plane_redis_data: diff --git a/deployments/plausible/docker-compose.yml b/deployments/plausible/docker-compose.yml new file mode 100644 index 0000000..a86810d --- /dev/null +++ b/deployments/plausible/docker-compose.yml @@ -0,0 +1,64 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + plausible: + image: plausible/analytics:latest + container_name: plausible + restart: unless-stopped + command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" + depends_on: + - plausible_db + - plausible_events_db + - mail + ports: + - "8000:8000" + environment: + - BASE_URL=http://localhost:8000 + - SECRET_KEY_BASE=ChangeMeChangeMeChangeMeChangeMeChangeMeChangeMeChangeMeChangeMe + - DATABASE_URL=postgres://postgres:postgres@plausible_db:5432/plausible_db + - CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db + - MAILER_EMAIL=admin@example.com + - SMTP_HOST_ADDR=mail + - SMTP_HOST_PORT=25 + - SMTP_USER_NAME= + - SMTP_USER_PWD= + - SMTP_SSL_Enabled=false + volumes: + - ./geoip:/geoip:ro + + plausible_db: + image: postgres:14-alpine + container_name: plausible_db + restart: unless-stopped + volumes: + - plausible_db_data:/var/lib/postgresql/data + environment: + - POSTGRES_PASSWORD=postgres + - POSTGRES_DB=plausible_db + + plausible_events_db: + image: clickhouse/clickhouse-server:24.3.3.102-alpine + container_name: plausible_events_db + restart: unless-stopped + volumes: + - plausible_events_data:/var/lib/clickhouse + - ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro + - ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro + ulimits: + nofile: + soft: 262144 + hard: 262144 + + mail: + image: bytemark/smtp + container_name: plausible_mail + restart: unless-stopped + +volumes: + plausible_db_data: + plausible_events_data: diff --git a/deployments/pocketbase/docker-compose.yml b/deployments/pocketbase/docker-compose.yml new file mode 100644 index 0000000..e0e46c6 --- /dev/null +++ b/deployments/pocketbase/docker-compose.yml @@ -0,0 +1,20 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + pocketbase: + image: pocketbase/pocketbase:latest + container_name: pocketbase + restart: unless-stopped + command: serve --http=0.0.0.0:8090 + ports: + - "8090:8090" + volumes: + - pb_data:/pb/pb_data + +volumes: + pb_data: diff --git a/deployments/postal/docker-compose.yml b/deployments/postal/docker-compose.yml new file mode 100644 index 0000000..340a626 --- /dev/null +++ b/deployments/postal/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + postal: + image: postalserver/postal:latest + container_name: postal + restart: unless-stopped + ports: + - "5000:5000" + diff --git a/deployments/posthog/docker-compose.yml b/deployments/posthog/docker-compose.yml new file mode 100644 index 0000000..63611e3 --- /dev/null +++ b/deployments/posthog/docker-compose.yml @@ -0,0 +1,82 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + db: + image: postgres:14-alpine + container_name: posthog-db + restart: unless-stopped + environment: + - POSTGRES_PASSWORD=posthog + - POSTGRES_DB=posthog + - POSTGRES_USER=posthog + volumes: + - posthog_postgres_data:/var/lib/postgresql/data + + redis: + image: redis:6-alpine + container_name: posthog-redis + restart: unless-stopped + volumes: + - posthog_redis_data:/data + + clickhouse: + image: clickhouse/clickhouse-server:22.3-alpine + container_name: posthog-clickhouse + restart: unless-stopped + environment: + - CLICKHOUSE_DB=posthog + - CLICKHOUSE_USER=default + - CLICKHOUSE_PASSWORD= + volumes: + - posthog_clickhouse_data:/var/lib/clickhouse + + kafka: + image: confluentinc/cp-kafka:7.5.3 + container_name: posthog-kafka + restart: unless-stopped + depends_on: + - zookeeper + environment: + - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 + - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 + - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 + + zookeeper: + image: confluentinc/cp-zookeeper:7.5.3 + container_name: posthog-zookeeper + restart: unless-stopped + environment: + - ZOOKEEPER_CLIENT_PORT=2181 + - ZOOKEEPER_TICK_TIME=2000 + + posthog: + image: posthog/posthog:release-1.40.0 + container_name: posthog + restart: unless-stopped + depends_on: + - db + - redis + - clickhouse + - kafka + ports: + - "8000:8000" + environment: + - DATABASE_URL=postgres://posthog:posthog@db:5432/posthog + - REDIS_URL=redis://redis:6379/ + - CLICKHOUSE_HOST=clickhouse + - KAFKA_HOSTS=kafka:9092 + - SECRET_KEY=please-change-this-secret-key-in-production-12345 + - SKIP_SERVICE_VERSION_REQUIREMENTS=1 + volumes: + - ./uploads:/app/static/uploads + +volumes: + posthog_postgres_data: + posthog_redis_data: + posthog_clickhouse_data: diff --git a/deployments/qwen/docker-compose.yml b/deployments/qwen/docker-compose.yml new file mode 100644 index 0000000..0e2a505 --- /dev/null +++ b/deployments/qwen/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + ollama-qwen: + image: ollama/ollama:latest + container_name: ollama-qwen + restart: unless-stopped + ports: + - "11438:11434" + volumes: + - ollama_qwen:/root/.ollama + +volumes: + ollama_qwen: diff --git a/deployments/rocketchat/data/db/WiredTiger b/deployments/rocketchat/data/db/WiredTiger new file mode 100644 index 0000000..0be60f6 --- /dev/null +++ b/deployments/rocketchat/data/db/WiredTiger @@ -0,0 +1,2 @@ +WiredTiger +WiredTiger 10.0.2: (November 30, 2021) diff --git a/deployments/rocketchat/data/db/WiredTiger.lock b/deployments/rocketchat/data/db/WiredTiger.lock new file mode 100644 index 0000000..3d84206 --- /dev/null +++ b/deployments/rocketchat/data/db/WiredTiger.lock @@ -0,0 +1 @@ +WiredTiger lock file diff --git a/deployments/rocketchat/data/db/WiredTiger.turtle b/deployments/rocketchat/data/db/WiredTiger.turtle new file mode 100644 index 0000000..08bd809 --- /dev/null +++ b/deployments/rocketchat/data/db/WiredTiger.turtle @@ -0,0 +1,6 @@ +WiredTiger version string +WiredTiger 10.0.2: (November 30, 2021) +WiredTiger version +major=10,minor=0,patch=2 +file:WiredTiger.wt +access_pattern_hint=none,allocation_size=4KB,app_metadata=,assert=(commit_timestamp=none,durable_timestamp=none,read_timestamp=none,write_timestamp=off),block_allocation=best,block_compressor=,cache_resident=false,checksum=on,collator=,columns=,dictionary=0,encryption=(keyid=,name=),format=btree,huffman_key=,huffman_value=,id=0,ignore_in_memory_cache_size=false,internal_item_max=0,internal_key_max=0,internal_key_truncate=true,internal_page_max=4KB,key_format=S,key_gap=10,leaf_item_max=0,leaf_key_max=0,leaf_page_max=32KB,leaf_value_max=0,log=(enabled=true),memory_page_image_max=0,memory_page_max=5MB,os_cache_dirty_max=0,os_cache_max=0,prefix_compression=false,prefix_compression_min=4,readonly=false,split_deepen_min_child=0,split_deepen_per_child=0,split_pct=90,tiered_object=false,tiered_storage=(auth_token=,bucket=,bucket_prefix=,cache_directory=,local_retention=300,name=,object_target_size=0),value_format=S,verbose=[],version=(major=1,minor=1),write_timestamp_usage=none,checkpoint=(WiredTigerCheckpoint.10=(addr="018081e46db65b4a8181e4feeac24c8281e4a8292aad808080e3025fc0e3010fc0",order=10,time=1771317552,size=81920,newest_start_durable_ts=0,oldest_start_ts=0,newest_txn=25,newest_stop_durable_ts=0,newest_stop_ts=-1,newest_stop_txn=-11,prepare=0,write_gen=38,run_write_gen=28)),checkpoint_backup_info=,checkpoint_lsn=(2,11392) diff --git a/deployments/rocketchat/data/db/WiredTiger.wt b/deployments/rocketchat/data/db/WiredTiger.wt new file mode 100644 index 0000000..023647b Binary files /dev/null and b/deployments/rocketchat/data/db/WiredTiger.wt differ diff --git a/deployments/rocketchat/data/db/WiredTigerHS.wt b/deployments/rocketchat/data/db/WiredTigerHS.wt new file mode 100644 index 0000000..bcf4e86 Binary files /dev/null and b/deployments/rocketchat/data/db/WiredTigerHS.wt differ diff --git a/deployments/rocketchat/data/db/_mdb_catalog.wt b/deployments/rocketchat/data/db/_mdb_catalog.wt new file mode 100644 index 0000000..782bf27 Binary files /dev/null and b/deployments/rocketchat/data/db/_mdb_catalog.wt differ diff --git a/deployments/rocketchat/data/db/collection-0--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-0--7760561798207562001.wt new file mode 100644 index 0000000..d0e9b0a Binary files /dev/null and b/deployments/rocketchat/data/db/collection-0--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-10--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-10--7760561798207562001.wt new file mode 100644 index 0000000..00ec4d9 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-10--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-12--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-12--7760561798207562001.wt new file mode 100644 index 0000000..8c72f99 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-12--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-14--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-14--7760561798207562001.wt new file mode 100644 index 0000000..9e97556 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-14--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-15--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-15--7760561798207562001.wt new file mode 100644 index 0000000..ea90316 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-15--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-17--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-17--7760561798207562001.wt new file mode 100644 index 0000000..8422487 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-17--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-19--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-19--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-19--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-2--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-2--7760561798207562001.wt new file mode 100644 index 0000000..ceff265 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-2--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-21--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-21--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-21--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-23--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-23--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-23--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-25--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-25--7760561798207562001.wt new file mode 100644 index 0000000..b9021b3 Binary files /dev/null and b/deployments/rocketchat/data/db/collection-25--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-26--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-26--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-26--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-27--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-27--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-27--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-33--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-33--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/collection-33--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-4--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-4--7760561798207562001.wt new file mode 100644 index 0000000..34e8d8b Binary files /dev/null and b/deployments/rocketchat/data/db/collection-4--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-6--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-6--7760561798207562001.wt new file mode 100644 index 0000000..071f01a Binary files /dev/null and b/deployments/rocketchat/data/db/collection-6--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/collection-8--7760561798207562001.wt b/deployments/rocketchat/data/db/collection-8--7760561798207562001.wt new file mode 100644 index 0000000..a93018c Binary files /dev/null and b/deployments/rocketchat/data/db/collection-8--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-37-09Z-00000 b/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-37-09Z-00000 new file mode 100644 index 0000000..bb9f106 Binary files /dev/null and b/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-37-09Z-00000 differ diff --git a/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-38-07Z-00000 b/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-38-07Z-00000 new file mode 100644 index 0000000..afe13f5 Binary files /dev/null and b/deployments/rocketchat/data/db/diagnostic.data/metrics.2026-02-17T08-38-07Z-00000 differ diff --git a/deployments/rocketchat/data/db/index-1--7760561798207562001.wt b/deployments/rocketchat/data/db/index-1--7760561798207562001.wt new file mode 100644 index 0000000..bdc0780 Binary files /dev/null and b/deployments/rocketchat/data/db/index-1--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-11--7760561798207562001.wt b/deployments/rocketchat/data/db/index-11--7760561798207562001.wt new file mode 100644 index 0000000..5a91a9d Binary files /dev/null and b/deployments/rocketchat/data/db/index-11--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-13--7760561798207562001.wt b/deployments/rocketchat/data/db/index-13--7760561798207562001.wt new file mode 100644 index 0000000..5f4b81d Binary files /dev/null and b/deployments/rocketchat/data/db/index-13--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-16--7760561798207562001.wt b/deployments/rocketchat/data/db/index-16--7760561798207562001.wt new file mode 100644 index 0000000..45c9dba Binary files /dev/null and b/deployments/rocketchat/data/db/index-16--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-18--7760561798207562001.wt b/deployments/rocketchat/data/db/index-18--7760561798207562001.wt new file mode 100644 index 0000000..f4efeb3 Binary files /dev/null and b/deployments/rocketchat/data/db/index-18--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-20--7760561798207562001.wt b/deployments/rocketchat/data/db/index-20--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-20--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-22--7760561798207562001.wt b/deployments/rocketchat/data/db/index-22--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-22--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-24--7760561798207562001.wt b/deployments/rocketchat/data/db/index-24--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-24--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-28--7760561798207562001.wt b/deployments/rocketchat/data/db/index-28--7760561798207562001.wt new file mode 100644 index 0000000..9b85cfc Binary files /dev/null and b/deployments/rocketchat/data/db/index-28--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-29--7760561798207562001.wt b/deployments/rocketchat/data/db/index-29--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-29--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-3--7760561798207562001.wt b/deployments/rocketchat/data/db/index-3--7760561798207562001.wt new file mode 100644 index 0000000..76f7588 Binary files /dev/null and b/deployments/rocketchat/data/db/index-3--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-30--7760561798207562001.wt b/deployments/rocketchat/data/db/index-30--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-30--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-31--7760561798207562001.wt b/deployments/rocketchat/data/db/index-31--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-31--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-32--7760561798207562001.wt b/deployments/rocketchat/data/db/index-32--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-32--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-34--7760561798207562001.wt b/deployments/rocketchat/data/db/index-34--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-34--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-35--7760561798207562001.wt b/deployments/rocketchat/data/db/index-35--7760561798207562001.wt new file mode 100644 index 0000000..3f019cb Binary files /dev/null and b/deployments/rocketchat/data/db/index-35--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-5--7760561798207562001.wt b/deployments/rocketchat/data/db/index-5--7760561798207562001.wt new file mode 100644 index 0000000..72538d2 Binary files /dev/null and b/deployments/rocketchat/data/db/index-5--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-7--7760561798207562001.wt b/deployments/rocketchat/data/db/index-7--7760561798207562001.wt new file mode 100644 index 0000000..05cd58c Binary files /dev/null and b/deployments/rocketchat/data/db/index-7--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/index-9--7760561798207562001.wt b/deployments/rocketchat/data/db/index-9--7760561798207562001.wt new file mode 100644 index 0000000..a1f6a66 Binary files /dev/null and b/deployments/rocketchat/data/db/index-9--7760561798207562001.wt differ diff --git a/deployments/rocketchat/data/db/journal/WiredTigerLog.0000000002 b/deployments/rocketchat/data/db/journal/WiredTigerLog.0000000002 new file mode 100644 index 0000000..eaecd3f Binary files /dev/null and b/deployments/rocketchat/data/db/journal/WiredTigerLog.0000000002 differ diff --git a/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000001 b/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000001 new file mode 100644 index 0000000..aa52a21 Binary files /dev/null and b/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000001 differ diff --git a/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000002 b/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000002 new file mode 100644 index 0000000..aa52a21 Binary files /dev/null and b/deployments/rocketchat/data/db/journal/WiredTigerPreplog.0000000002 differ diff --git a/deployments/rocketchat/data/db/mongod.lock b/deployments/rocketchat/data/db/mongod.lock new file mode 100644 index 0000000..e69de29 diff --git a/deployments/rocketchat/data/db/sizeStorer.wt b/deployments/rocketchat/data/db/sizeStorer.wt new file mode 100644 index 0000000..87b4ea4 Binary files /dev/null and b/deployments/rocketchat/data/db/sizeStorer.wt differ diff --git a/deployments/rocketchat/data/db/storage.bson b/deployments/rocketchat/data/db/storage.bson new file mode 100644 index 0000000..276b694 Binary files /dev/null and b/deployments/rocketchat/data/db/storage.bson differ diff --git a/deployments/rocketchat/docker-compose.yml b/deployments/rocketchat/docker-compose.yml new file mode 100644 index 0000000..7af99be --- /dev/null +++ b/deployments/rocketchat/docker-compose.yml @@ -0,0 +1,40 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + rocketchat: + image: registry.rocket.chat/rocketchat/rocket.chat:latest + container_name: rocketchat + restart: unless-stopped + depends_on: + - mongo + ports: + - "3002:3000" + environment: + - MONGO_URL=mongodb://mongo:27017/rocketchat + - ROOT_URL=http://localhost:3002 + - PORT=3000 + + mongo: + image: mongo:5.0 + container_name: rocketchat-mongo + restart: unless-stopped + command: mongod --oplogSize 128 --replSet rs0 --storageEngine=wiredTiger + volumes: + - ./data/db:/data/db + + mongo-init-replica: + image: mongo:5.0 + container_name: mongo-init-replica + restart: unless-stopped + command: bash /init-replica.sh + depends_on: + - mongo + volumes: + - ./init-replica.sh:/init-replica.sh + diff --git a/deployments/rocketchat/init-replica.sh b/deployments/rocketchat/init-replica.sh new file mode 100644 index 0000000..b47b2d4 --- /dev/null +++ b/deployments/rocketchat/init-replica.sh @@ -0,0 +1,7 @@ +#!/bin/bash +for i in `seq 1 30`; do + mongo mongo/rocketchat --eval "rs.initiate({ _id: \"rs0\", members: [ { _id: 0, host: \"localhost:27017\" } ]})" && s=$? && break || s=$?; + echo "Tried $i times. Waiting 5s..."; + sleep 5; +done; +exit $s \ No newline at end of file diff --git a/deployments/signoz/docker-compose.yml b/deployments/signoz/docker-compose.yml new file mode 100644 index 0000000..549ba96 --- /dev/null +++ b/deployments/signoz/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + signoz-frontend: + image: signoz/frontend:latest + container_name: signoz-frontend + restart: unless-stopped + ports: + - "3301:3301" + diff --git a/deployments/stable-diffusion/docker-compose.yml b/deployments/stable-diffusion/docker-compose.yml new file mode 100644 index 0000000..344643d --- /dev/null +++ b/deployments/stable-diffusion/docker-compose.yml @@ -0,0 +1,16 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + sd-webui: + image: automatic1111/stable-diffusion-webui:latest + container_name: sd-webui + restart: unless-stopped + ports: + - "7860:7860" + diff --git a/deployments/supabase/docker-compose.yml b/deployments/supabase/docker-compose.yml new file mode 100644 index 0000000..bdab9a5 --- /dev/null +++ b/deployments/supabase/docker-compose.yml @@ -0,0 +1,95 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Supabase Production-Ready Docker Compose +# Note: Supabase is a collection of services. Official images are the standard. +# This setup includes the core services: PostgREST, GoTrue, Realtime, Storage, and PostgreSQL. + +version: '3.8' + +services: + db: + container_name: supabase-db + image: supabase/postgres:15.1.1.78 + command: postgres -c config_file=/etc/postgresql/postgresql.conf -c log_min_messages=fatal + healthcheck: + test: ["CMD", "pg_isready", "-U", "postgres"] + interval: 5s + timeout: 5s + retries: 3 + environment: + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres} + PGDATA: /var/lib/postgresql/data/pgdata + volumes: + - supabase_db_data:/var/lib/postgresql/data + networks: + - supabase_net + + auth: + container_name: supabase-auth + image: supabase/gotrue:v2.143.0 + depends_on: + db: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9999/health"] + interval: 5s + timeout: 5s + retries: 3 + environment: + GOTRUE_DB_DRIVER: postgres + GOTRUE_DB_DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD:-postgres}@db:5432/postgres?sslmode=disable + GOTRUE_SITE_URL: ${SITE_URL:-http://localhost:3000} + GOTRUE_JWT_SECRET: ${JWT_SECRET:-super-secret-jwt-token-don-not-use-in-prod} + networks: + - supabase_net + + rest: + container_name: supabase-rest + image: postgrest/postgrest:v11.2.2 + depends_on: + db: + condition: service_healthy + environment: + PGRST_DB_URI: postgres://postgres:${POSTGRES_PASSWORD:-postgres}@db:5432/postgres + PGRST_DB_SCHEMA: public + PGRST_DB_ANON_ROLE: anon + networks: + - supabase_net + + realtime: + container_name: supabase-realtime + image: supabase/realtime:v2.25.56 + depends_on: + db: + condition: service_healthy + environment: + DB_HOST: db + DB_PASSWORD: ${POSTGRES_PASSWORD:-postgres} + JWT_SECRET: ${JWT_SECRET:-super-secret-jwt-token-don-not-use-in-prod} + networks: + - supabase_net + + storage: + container_name: supabase-storage + image: supabase/storage-api:v0.43.12 + depends_on: + db: + condition: service_healthy + environment: + ANON_KEY: ${ANON_KEY} + SERVICE_KEY: ${SERVICE_KEY} + PGRST_JWT_SECRET: ${JWT_SECRET:-super-secret-jwt-token-don-not-use-in-prod} + DATABASE_URL: postgres://postgres:${POSTGRES_PASSWORD:-postgres}@db:5432/postgres + networks: + - supabase_net + +networks: + supabase_net: + driver: bridge + +volumes: + supabase_db_data: + name: supabase_db_data diff --git a/deployments/superset/Dockerfile b/deployments/superset/Dockerfile new file mode 100644 index 0000000..3384f17 --- /dev/null +++ b/deployments/superset/Dockerfile @@ -0,0 +1,45 @@ +# Dockerfile for Apache Superset +# Stage 1: Build Frontend (Optional if using pre-built assets, but good for custom builds) +FROM node:20-alpine AS frontend-builder +WORKDIR /app/superset-frontend +COPY superset-frontend/package.json superset-frontend/package-lock.json ./ +RUN npm ci +COPY superset-frontend/ . +RUN npm run build + +# Stage 2: Final Image +FROM python:3.11-slim-bookworm + +# Create non-root user +RUN groupadd -r superset && useradd -r -m -g superset superset + +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ + libpq-dev \ + libssl-dev \ + libffi-dev \ + libsasl2-dev \ + libldap2-dev \ + && rm -rf /var/lib/apt/lists/* + +# Install Superset +RUN pip install --no-cache-dir apache-superset flask-appbuilder + +# Copy built frontend assets (if built in Stage 1) +# COPY --from=frontend-builder /app/superset/static/assets /app/superset/static/assets + +# Set permissions +RUN chown -R superset:superset /app + +USER superset + +ENV SUPERSET_CONFIG_PATH=/app/superset_config.py +ENV FLASK_APP=superset + +EXPOSE 8088 + +CMD ["superset", "run", "-p", "8088", "--with-threads", "--reload", "--debugger"] diff --git a/deployments/superset/docker-compose.yml b/deployments/superset/docker-compose.yml new file mode 100644 index 0000000..f59f3f5 --- /dev/null +++ b/deployments/superset/docker-compose.yml @@ -0,0 +1,67 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Apache Superset +version: '3.8' + +services: + superset: + build: + context: . + dockerfile: Dockerfile + container_name: superset + ports: + - "8088:8088" + environment: + - DATABASE_URL=postgresql://superset:superset@db:5432/superset + - REDIS_URL=redis://redis:6379 + depends_on: + db: + condition: service_healthy + redis: + condition: service_healthy + networks: + - superset_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:8088/health" ] + interval: 30s + timeout: 10s + retries: 3 + + db: + image: postgres:15-alpine + container_name: superset-db + environment: + POSTGRES_USER: superset + POSTGRES_PASSWORD: superset + POSTGRES_DB: superset + volumes: + - superset_db_data:/var/lib/postgresql/data + networks: + - superset_net + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U superset" ] + interval: 5s + timeout: 5s + retries: 5 + + redis: + image: redis:7-alpine + container_name: superset-redis + networks: + - superset_net + healthcheck: + test: [ "CMD", "redis-cli", "ping" ] + interval: 5s + timeout: 5s + retries: 5 + +networks: + superset_net: + driver: bridge + +volumes: + superset_db_data: + name: superset_db_data diff --git a/deployments/tabby/docker-compose.yml b/deployments/tabby/docker-compose.yml new file mode 100644 index 0000000..75fea6d --- /dev/null +++ b/deployments/tabby/docker-compose.yml @@ -0,0 +1,20 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + tabby: + image: tabbyml/tabby:latest + container_name: tabby + restart: unless-stopped + ports: + - "8080:8080" + volumes: + - tabby-data:/data + +volumes: + tabby-data: diff --git a/deployments/taiga/docker-compose.yml b/deployments/taiga/docker-compose.yml new file mode 100644 index 0000000..7d8820c --- /dev/null +++ b/deployments/taiga/docker-compose.yml @@ -0,0 +1,62 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + taiga-front: + image: taigaio/taiga-front:latest + container_name: taiga-front + restart: unless-stopped + depends_on: + - taiga-back + ports: + - "9000:80" + environment: + - TAIGA_URL=http://localhost:9000 + - TAIGA_WEBSOCKETS_URL=ws://localhost:9000 + + taiga-back: + image: taigaio/taiga-back:latest + container_name: taiga-back + restart: unless-stopped + depends_on: + - taiga-db + - taiga-redis + - taiga-async-rabbitmq + environment: + - POSTGRES_DB=taiga + - POSTGRES_USER=taiga + - POSTGRES_PASSWORD=taiga + - TAIGA_SECRET_KEY=exe3quu8Su2wohx0uNgo0eif4wohphah + + taiga-db: + image: postgres:13-alpine + container_name: taiga-db + restart: unless-stopped + environment: + - POSTGRES_DB=taiga + - POSTGRES_USER=taiga + - POSTGRES_PASSWORD=taiga + volumes: + - taiga_db_data:/var/lib/postgresql/data + + taiga-async-rabbitmq: + image: rabbitmq:3.8-management-alpine + container_name: taiga-rabbitmq + restart: unless-stopped + environment: + - RABBITMQ_ERLANG_COOKIE=secret-cookie + - RABBITMQ_DEFAULT_USER=taiga + - RABBITMQ_DEFAULT_PASS=taiga + + taiga-redis: + image: redis:6-alpine + container_name: taiga-redis + restart: unless-stopped + +volumes: + taiga_db_data: diff --git a/deployments/twenty/docker-compose.yml b/deployments/twenty/docker-compose.yml new file mode 100644 index 0000000..8460413 --- /dev/null +++ b/deployments/twenty/docker-compose.yml @@ -0,0 +1,34 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + twenty: + image: twentyhq/twenty:latest + container_name: twenty + restart: unless-stopped + depends_on: + - db + ports: + - "3000:3000" + environment: + - PG_DATABASE_URL=postgres://twenty:twenty@db:5432/twenty + - FRONTEND_URL=http://localhost:3000 + + db: + image: postgres:15-alpine + container_name: twenty-db + restart: unless-stopped + environment: + - POSTGRES_USER=twenty + - POSTGRES_PASSWORD=twenty + - POSTGRES_DB=twenty + volumes: + - twenty_db_data:/var/lib/postgresql/data + +volumes: + twenty_db_data: diff --git a/deployments/uptime-kuma/Dockerfile b/deployments/uptime-kuma/Dockerfile new file mode 100644 index 0000000..2992ef7 --- /dev/null +++ b/deployments/uptime-kuma/Dockerfile @@ -0,0 +1,38 @@ +# Dockerfile for Uptime Kuma +# Stage 1: Build +FROM node:20-alpine AS builder + +# Install build dependencies +RUN apk add --no-cache python3 make g++ + +WORKDIR /app + +# Copy dependency files +COPY package.json package-lock.json ./ + +# Install dependencies +RUN npm ci + +# Copy source +COPY . . + +# Stage 2: Runtime +FROM node:20-alpine + +# Create non-root user +RUN addgroup -S uptimekuma && adduser -S uptimekuma -G uptimekuma + +WORKDIR /app + +# Copy built assets and node_modules from builder +COPY --from=builder /app ./ + +# Set permissions +RUN chown -R uptimekuma:uptimekuma /app + +USER uptimekuma + +EXPOSE 3001 + +# Start Uptime Kuma +CMD ["node", "server/server.js"] diff --git a/deployments/uptime-kuma/docker-compose.yml b/deployments/uptime-kuma/docker-compose.yml new file mode 100644 index 0000000..7872109 --- /dev/null +++ b/deployments/uptime-kuma/docker-compose.yml @@ -0,0 +1,32 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +# Docker Compose for Uptime Kuma +version: '3.8' + +services: + uptime-kuma: + image: louislam/uptime-kuma:1 # Official image is standard + container_name: uptime-kuma + ports: + - "3001:3001" + volumes: + - uptime_kuma_data:/app/data + networks: + - uptime_net + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:3001/" ] + interval: 30s + timeout: 10s + retries: 3 + restart: unless-stopped + +networks: + uptime_net: + driver: bridge + +volumes: + uptime_kuma_data: + name: uptime_kuma_data diff --git a/deployments/vaultwarden/docker-compose.yml b/deployments/vaultwarden/docker-compose.yml new file mode 100644 index 0000000..80c4bbb --- /dev/null +++ b/deployments/vaultwarden/docker-compose.yml @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + vaultwarden: + image: vaultwarden/server:latest + container_name: vaultwarden + restart: unless-stopped + ports: + - "8080:80" + volumes: + - vw-data:/data + environment: + - WEBSOCKET_ENABLED=true + - SIGNUPS_ALLOWED=true + +volumes: + vw-data: diff --git a/deployments/zammad/docker-compose.yml b/deployments/zammad/docker-compose.yml new file mode 100644 index 0000000..080b551 --- /dev/null +++ b/deployments/zammad/docker-compose.yml @@ -0,0 +1,40 @@ + +# ------------------------------------------------------------------------- +# 🚀 Created and distributed by The AltStack +# 🌍 https://thealtstack.com +# ------------------------------------------------------------------------- + +version: '3.8' + +services: + zammad: + image: zammad/zammad-docker-compose:zammad-6.3.1-23 + container_name: zammad + restart: unless-stopped + depends_on: + - zammad-postgresql + - zammad-elasticsearch + - zammad-redis + ports: + - "8080:8080" + + zammad-elasticsearch: + image: bitnami/elasticsearch:8.12.2 + container_name: zammad-elasticsearch + restart: unless-stopped + environment: + - discovery.type=single-node + + zammad-postgresql: + image: postgres:15-alpine + container_name: zammad-postgresql + restart: unless-stopped + environment: + - POSTGRES_USER=zammad + - POSTGRES_PASSWORD=zammad + + zammad-redis: + image: redis:7.2-alpine + container_name: zammad-redis + restart: unless-stopped +