Initialize public data and docs repository

This commit is contained in:
AltStack Bot
2026-02-25 22:36:27 +05:30
commit 2a0ac1b107
357 changed files with 50685 additions and 0 deletions

201
docs/app/deploy/_meta.ts Normal file
View File

@@ -0,0 +1,201 @@
import type { MetaRecord } from 'nextra'
const meta: MetaRecord = {
"activepieces": {
"title": "Activepieces"
},
"affine": {
"title": "AFFiNE"
},
"akaunting": {
"title": "Akaunting"
},
"appflowy": {
"title": "AppFlowy"
},
"appwrite": {
"title": "Appwrite"
},
"authentik": {
"title": "Authentik"
},
"bitwarden": {
"title": "Bitwarden"
},
"calcom": {
"title": "Cal.com"
},
"chaskiq": {
"title": "Chaskiq"
},
"coder": {
"title": "Coder"
},
"continue-dev": {
"title": "Continue"
},
"coolify": {
"title": "Coolify"
},
"deepseek": {
"title": "DeepSeek-V3 / R1"
},
"documenso": {
"title": "Documenso"
},
"dokku": {
"title": "Dokku"
},
"erpnext": {
"title": "ERPNext"
},
"flux": {
"title": "FLUX"
},
"freecad": {
"title": "FreeCAD"
},
"gemma": {
"title": "Google Gemma 2"
},
"gimp": {
"title": "GIMP"
},
"glitchtip": {
"title": "GlitchTip"
},
"gpt4all": {
"title": "GPT4All"
},
"hunyuan-video": {
"title": "HunyuanVideo 1.5"
},
"jitsi-meet": {
"title": "Jitsi Meet"
},
"jitsu": {
"title": "Jitsu"
},
"kdenlive": {
"title": "Kdenlive"
},
"keepassxc": {
"title": "KeePassXC"
},
"keycloak": {
"title": "Keycloak"
},
"krita": {
"title": "Krita"
},
"librecad": {
"title": "LibreCAD"
},
"listmonk": {
"title": "Listmonk"
},
"llama": {
"title": "Meta Llama 3.1"
},
"matomo": {
"title": "Matomo"
},
"mattermost": {
"title": "Mattermost"
},
"mautic": {
"title": "Mautic"
},
"medusa": {
"title": "Medusa.js"
},
"metabase": {
"title": "Metabase"
},
"minio": {
"title": "MinIO"
},
"mistral": {
"title": "Mistral Large 2"
},
"mixpost": {
"title": "Mixpost"
},
"mochi-1": {
"title": "Mochi-1"
},
"n8n": {
"title": "n8n"
},
"odoo": {
"title": "Odoo"
},
"ollama": {
"title": "Ollama"
},
"onlyoffice": {
"title": "ONLYOFFICE"
},
"orangehrm": {
"title": "OrangeHRM"
},
"outline": {
"title": "Outline"
},
"penpot": {
"title": "Penpot"
},
"plane": {
"title": "Plane"
},
"plausible": {
"title": "Plausible"
},
"pocketbase": {
"title": "PocketBase"
},
"postal": {
"title": "Postal"
},
"posthog": {
"title": "PostHog"
},
"qwen": {
"title": "Qwen 2.5"
},
"rocketchat": {
"title": "Rocket.Chat"
},
"signoz": {
"title": "SigNoz"
},
"stable-diffusion": {
"title": "Stable Diffusion 3.5"
},
"supabase": {
"title": "Supabase"
},
"superset": {
"title": "Apache Superset"
},
"tabby": {
"title": "TabbyML"
},
"taiga": {
"title": "Taiga"
},
"twenty": {
"title": "Twenty"
},
"uptime-kuma": {
"title": "Uptime Kuma"
},
"vaultwarden": {
"title": "Vaultwarden"
},
"zammad": {
"title": "Zammad"
}
}
export default meta

View File

@@ -0,0 +1,158 @@
---
title: "Deploy Activepieces Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Activepieces with Docker Compose. "
---
# Deploy Activepieces
Open source alternative to Zapier. Automate your work with 200+ apps.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 11.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Activepieces instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Activepieces and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/activepieces && cd /opt/activepieces
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `AP_FRONTEND_URL` | `http://localhost:8080` | No |
| `AP_POSTGRES_DATABASE` | `activepieces` | No |
| `AP_POSTGRES_HOST` | `db` | No |
| `AP_POSTGRES_PORT` | `5432` | No |
| `AP_POSTGRES_USERNAME` | `activepieces` | No |
| `AP_POSTGRES_PASSWORD` | `activepieces` | No |
| `AP_REDIS_HOST` | `redis` | No |
| `AP_REDIS_PORT` | `6379` | No |
| `POSTGRES_USER` | `activepieces` | No |
| `POSTGRES_PASSWORD` | `activepieces` | No |
| `POSTGRES_DB` | `activepieces` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs activepieces | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Activepieces on AltStack Directory](https://thealtstack.com/alternative-to/activepieces)
- [Activepieces Self-Hosted Guide](https://thealtstack.com/self-hosted/activepieces)
- [Official Documentation](https://www.activepieces.com)
- [GitHub Repository](https://github.com/activepieces/activepieces)

View File

@@ -0,0 +1,171 @@
---
title: "Deploy AFFiNE Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting AFFiNE with Docker Compose. "
---
# Deploy AFFiNE
There can be more than Notion and Miro. AFFiNE(pronounced [əfain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 62.7k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working AFFiNE instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for AFFiNE and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/affine && cd /opt/affine
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgres://affine:affine@db:5432/affine` | No |
| `REDIS_URL` | `redis://redis:6379` | No |
| `NODE_ENV` | `production` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs affine | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [AFFiNE on AltStack Directory](https://thealtstack.com/alternative-to/affine)
- [AFFiNE Self-Hosted Guide](https://thealtstack.com/self-hosted/affine)
- [Official Documentation](https://affine.pro)
- [GitHub Repository](https://github.com/toeverything/AFFiNE)

View File

@@ -0,0 +1,146 @@
---
title: "Deploy Akaunting Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Akaunting with Docker Compose. "
---
# Deploy Akaunting
Free and open source online accounting software for small businesses and freelancers.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 12.0k stars</span>
<span className="deploy-hero-item">📜 GPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Akaunting instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Akaunting and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/akaunting && cd /opt/akaunting
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DB_HOST` | `db` | No |
| `DB_DATABASE` | `akaunting` | No |
| `DB_USERNAME` | `akaunting` | No |
| `DB_PASSWORD` | `akaunting` | No |
| `MYSQL_DATABASE` | `akaunting` | No |
| `MYSQL_USER` | `akaunting` | No |
| `MYSQL_PASSWORD` | `akaunting` | No |
| `MYSQL_ROOT_PASSWORD` | `root` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs akaunting | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Akaunting on AltStack Directory](https://thealtstack.com/alternative-to/akaunting)
- [Akaunting Self-Hosted Guide](https://thealtstack.com/self-hosted/akaunting)
- [Official Documentation](https://akaunting.com)
- [GitHub Repository](https://github.com/akaunting/akaunting)

View File

@@ -0,0 +1,171 @@
---
title: "Deploy AppFlowy Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting AppFlowy with Docker Compose. "
---
# Deploy AppFlowy
Bring projects, wikis, and teams together with AI. AppFlowy is the AI collaborative workspace where you achieve more without losing control of your data. The leading open source Notion alternative.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 68.0k stars</span>
<span className="deploy-hero-item">📜 GNU Affero General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working AppFlowy instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for AppFlowy and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/appflowy && cd /opt/appflowy
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgres://postgres:${POSTGRES_PASSWORD:-password}@db:5432/appflowy` | No |
| `REDIS_URL` | `redis://redis:6379` | No |
| `POSTGRES_PASSWORD` | `password` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs appflowy | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [AppFlowy on AltStack Directory](https://thealtstack.com/alternative-to/appflowy)
- [AppFlowy Self-Hosted Guide](https://thealtstack.com/self-hosted/appflowy)
- [Official Documentation](https://www.appflowy.io)
- [GitHub Repository](https://github.com/AppFlowy-IO/AppFlowy)

View File

@@ -0,0 +1,181 @@
---
title: "Deploy Appwrite Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Appwrite with Docker Compose. "
---
# Deploy Appwrite
Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 54.7k stars</span>
<span className="deploy-hero-item">📜 BSD 3-Clause "New" or "Revised" License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Appwrite instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Appwrite and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/appwrite && cd /opt/appwrite
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `_APP_ENV` | `production` | No |
| `_APP_DB_HOST` | `db` | No |
| `_APP_DB_USER` | `appwrite` | No |
| `_APP_DB_PASS` | `${DB_PASSWORD:-password}` | No |
| `_APP_REDIS_HOST` | `redis` | No |
| `DB_PASSWORD` | `password` | No |
| `DB_ROOT_PASSWORD` | `rootpassword` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs appwrite | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Appwrite on AltStack Directory](https://thealtstack.com/alternative-to/appwrite)
- [Appwrite Self-Hosted Guide](https://thealtstack.com/self-hosted/appwrite)
- [Official Documentation](https://appwrite.io)
- [GitHub Repository](https://github.com/appwrite/appwrite)

View File

@@ -0,0 +1,172 @@
---
title: "Deploy Authentik Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Authentik with Docker Compose. "
---
# Deploy Authentik
The overall-best open-source identity provider, focused on flexibility and versatility.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 15.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Authentik instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Authentik and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/authentik && cd /opt/authentik
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `AUTHENTIK_REDIS__HOST` | `redis` | No |
| `AUTHENTIK_POSTGRESQL__HOST` | `db` | No |
| `AUTHENTIK_POSTGRESQL__USER` | `authentik` | No |
| `AUTHENTIK_POSTGRESQL__NAME` | `authentik` | No |
| `AUTHENTIK_POSTGRESQL__PASSWORD` | `authentik` | No |
| `AUTHENTIK_SECRET_KEY` | `generate-a-random-secret-key` | No |
| `POSTGRES_PASSWORD` | `authentik` | No |
| `POSTGRES_USER` | `authentik` | No |
| `POSTGRES_DB` | `authentik` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs authentik | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Authentik on AltStack Directory](https://thealtstack.com/alternative-to/authentik)
- [Authentik Self-Hosted Guide](https://thealtstack.com/self-hosted/authentik)
- [Official Documentation](https://goauthentik.io)
- [GitHub Repository](https://github.com/goauthentik/authentik)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy Bitwarden Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Bitwarden with Docker Compose. "
---
# Deploy Bitwarden
Bitwarden infrastructure/backend (API, database, Docker, etc).
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 18.0k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Bitwarden instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Bitwarden and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/bitwarden && cd /opt/bitwarden
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs bitwarden | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Bitwarden on AltStack Directory](https://thealtstack.com/alternative-to/bitwarden)
- [Bitwarden Self-Hosted Guide](https://thealtstack.com/self-hosted/bitwarden)
- [Official Documentation](https://bitwarden.com)
- [GitHub Repository](https://github.com/bitwarden/server)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Cal.com Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Cal.com with Docker Compose. "
---
# Deploy Cal.com
The open-source Calendly alternative. Take control of your scheduling.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 30.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Cal.com instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Cal.com and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/calcom && cd /opt/calcom
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs calcom | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Cal.com on AltStack Directory](https://thealtstack.com/alternative-to/calcom)
- [Cal.com Self-Hosted Guide](https://thealtstack.com/self-hosted/calcom)
- [Official Documentation](https://cal.com)
- [GitHub Repository](https://github.com/calcom/cal.com)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Chaskiq Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Chaskiq with Docker Compose. "
---
# Deploy Chaskiq
Open source conversational marketing platform alternative to Intercom and Drift.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 4.0k stars</span>
<span className="deploy-hero-item">📜 GPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Chaskiq instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Chaskiq and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/chaskiq && cd /opt/chaskiq
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs chaskiq | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Chaskiq on AltStack Directory](https://thealtstack.com/alternative-to/chaskiq)
- [Chaskiq Self-Hosted Guide](https://thealtstack.com/self-hosted/chaskiq)
- [Official Documentation](https://chaskiq.io)
- [GitHub Repository](https://github.com/chaskiq/chaskiq)

View File

@@ -0,0 +1,144 @@
---
title: "Deploy Coder Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Coder with Docker Compose. "
---
# Deploy Coder
Provision software development environments as code on your infrastructure.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 20.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Coder instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Coder and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/coder && cd /opt/coder
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `CODER_PG_CONNECTION_URL` | `postgresql://coder:coder@db:5432/coder` | No |
| `CODER_ACCESS_URL` | `http://localhost:7080` | No |
| `CODER_HTTP_ADDRESS` | `0.0.0.0:7080` | No |
| `POSTGRES_USER` | `coder` | No |
| `POSTGRES_PASSWORD` | `coder` | No |
| `POSTGRES_DB` | `coder` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs coder | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Coder on AltStack Directory](https://thealtstack.com/alternative-to/coder)
- [Coder Self-Hosted Guide](https://thealtstack.com/self-hosted/coder)
- [Official Documentation](https://coder.com)
- [GitHub Repository](https://github.com/coder/coder)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Continue Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Continue with Docker Compose. "
---
# Deploy Continue
Open-source AI code assistant for VS Code and JetBrains. Use any model (local or API).
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 25.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Continue instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Continue and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/continue-dev && cd /opt/continue-dev
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs continue-dev | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Continue on AltStack Directory](https://thealtstack.com/alternative-to/continue-dev)
- [Continue Self-Hosted Guide](https://thealtstack.com/self-hosted/continue-dev)
- [Official Documentation](https://continue.dev)
- [GitHub Repository](https://github.com/continuedev/continue)

View File

@@ -0,0 +1,171 @@
---
title: "Deploy Coolify Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Coolify with Docker Compose. "
---
# Deploy Coolify
An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 50.4k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
A fully operational Coolify instance. Think of Coolify as a self-hosted Vercel or Heroku. Once installed, it manages your other Docker containers, handles deployments from GitHub/GitLab, and provides an integrated reverse proxy.
> 🚀 **Self-Hosting Level:** If you only deploy one thing, let it be Coolify. It makes deploying everything else 10x easier.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Coolify and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/coolify && cd /opt/coolify
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `APP_ENV` | `production` | No |
| `DB_CONNECTION` | `pgsql` | No |
| `DB_HOST` | `db` | No |
| `DB_DATABASE` | `coolify` | No |
| `DB_USERNAME` | `coolify` | No |
| `DB_PASSWORD` | `${DB_PASSWORD:-password}` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs coolify | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Coolify on AltStack Directory](https://thealtstack.com/alternative-to/coolify)
- [Coolify Self-Hosted Guide](https://thealtstack.com/self-hosted/coolify)
- [Official Documentation](https://coolify.io)
- [GitHub Repository](https://github.com/coollabsio/coolify)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy DeepSeek-V3 / R1 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting DeepSeek-V3 / R1 with Docker Compose. Replaces: meta-llama-3-1, mistral, qwen-2-5."
---
# Deploy DeepSeek-V3 / R1
Powerful open-source models including V3 (671B) and R1 (Reasoning). Rivals GPT-4o and o1.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 110.0k stars</span>
<span className="deploy-hero-item">📜 MIT License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working DeepSeek-V3 / R1 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for DeepSeek-V3 / R1 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/deepseek && cd /opt/deepseek
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs deepseek | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [DeepSeek-V3 / R1 on AltStack Directory](https://thealtstack.com/alternative-to/deepseek)
- [DeepSeek-V3 / R1 Self-Hosted Guide](https://thealtstack.com/self-hosted/deepseek)
- [Official Documentation](https://deepseek.com)
- [GitHub Repository](https://github.com/deepseek-ai/DeepSeek-V3)

View File

@@ -0,0 +1,142 @@
---
title: "Deploy Documenso Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Documenso with Docker Compose. "
---
# Deploy Documenso
The open-source DocuSign alternative. We aim to be the world's most trusted document signing platform.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 8.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Documenso instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Documenso and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/documenso && cd /opt/documenso
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgresql://documenso:documenso@db:5432/documenso` | No |
| `NEXTAUTH_URL` | `http://localhost:3000` | No |
| `NEXTAUTH_SECRET` | `supersecret` | No |
| `POSTGRES_USER` | `documenso` | No |
| `POSTGRES_PASSWORD` | `documenso` | No |
| `POSTGRES_DB` | `documenso` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs documenso | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Documenso on AltStack Directory](https://thealtstack.com/alternative-to/documenso)
- [Documenso Self-Hosted Guide](https://thealtstack.com/self-hosted/documenso)
- [Official Documentation](https://documenso.com)
- [GitHub Repository](https://github.com/documenso/documenso)

View File

@@ -0,0 +1,114 @@
---
title: "Deploy Dokku Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Dokku with Docker Compose. "
---
# Deploy Dokku
A docker-powered PaaS that helps you build and manage the lifecycle of applications
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 31.9k stars</span>
<span className="deploy-hero-item">📜 MIT License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Dokku instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Dokku and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/dokku && cd /opt/dokku
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs dokku | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Dokku on AltStack Directory](https://thealtstack.com/alternative-to/dokku)
- [Dokku Self-Hosted Guide](https://thealtstack.com/self-hosted/dokku)
- [Official Documentation](https://dokku.com)
- [GitHub Repository](https://github.com/dokku/dokku)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy ERPNext Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting ERPNext with Docker Compose. "
---
# Deploy ERPNext
A free and open-source integrated Enterprise Resource Planning (ERP) software.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 31.6k stars</span>
<span className="deploy-hero-item">📜 GNU General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working ERPNext instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for ERPNext and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/erpnext && cd /opt/erpnext
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs erpnext | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [ERPNext on AltStack Directory](https://thealtstack.com/alternative-to/erpnext)
- [ERPNext Self-Hosted Guide](https://thealtstack.com/self-hosted/erpnext)
- [Official Documentation](https://erpnext.com)
- [GitHub Repository](https://github.com/frappe/erpnext)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy FLUX Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting FLUX with Docker Compose. "
---
# Deploy FLUX
Next-gen open image generation model from Black Forest Labs. State-of-the-art quality rivaling Midjourney.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 20.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working FLUX instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for FLUX and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/flux && cd /opt/flux
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs flux | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [FLUX on AltStack Directory](https://thealtstack.com/alternative-to/flux)
- [FLUX Self-Hosted Guide](https://thealtstack.com/self-hosted/flux)
- [Official Documentation](https://blackforestlabs.ai)
- [GitHub Repository](https://github.com/black-forest-labs/flux)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy FreeCAD Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting FreeCAD with Docker Compose. "
---
# Deploy FreeCAD
A general-purpose parametric 3D CAD modeler and a BIM software application.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 21.0k stars</span>
<span className="deploy-hero-item">📜 LGPLv2+</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working FreeCAD instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for FreeCAD and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/freecad && cd /opt/freecad
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs freecad | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [FreeCAD on AltStack Directory](https://thealtstack.com/alternative-to/freecad)
- [FreeCAD Self-Hosted Guide](https://thealtstack.com/self-hosted/freecad)
- [Official Documentation](https://www.freecad.org)
- [GitHub Repository](https://github.com/FreeCAD/FreeCAD)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy Google Gemma 2 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Google Gemma 2 with Docker Compose. "
---
# Deploy Google Gemma 2
Google's open-weight models (9B, 27B) with class-leading performance and efficient architecture.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 20.0k stars</span>
<span className="deploy-hero-item">📜 Gemma License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Google Gemma 2 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Google Gemma 2 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/gemma && cd /opt/gemma
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs gemma | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Google Gemma 2 on AltStack Directory](https://thealtstack.com/alternative-to/gemma)
- [Google Gemma 2 Self-Hosted Guide](https://thealtstack.com/self-hosted/gemma)
- [Official Documentation](https://ai.google.dev/gemma)
- [GitHub Repository](https://github.com/google/gemma-2)

View File

@@ -0,0 +1,121 @@
---
title: "Deploy GIMP Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting GIMP with Docker Compose. "
---
# Deploy GIMP
Read-only mirror of https://gitlab.gnome.org/GNOME/gimp
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 6.0k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working GIMP instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for GIMP and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/gimp && cd /opt/gimp
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `PUID` | `1000` | No |
| `PGID` | `1000` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs gimp | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [GIMP on AltStack Directory](https://thealtstack.com/alternative-to/gimp)
- [GIMP Self-Hosted Guide](https://thealtstack.com/self-hosted/gimp)
- [Official Documentation](https://www.gimp.org)
- [GitHub Repository](https://github.com/GNOME/gimp)

View File

@@ -0,0 +1,150 @@
---
title: "Deploy GlitchTip Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting GlitchTip with Docker Compose. "
---
# Deploy GlitchTip
Open source error tracking that's compatible with Sentry SDKs.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 3.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working GlitchTip instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for GlitchTip and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/glitchtip && cd /opt/glitchtip
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgres://glitchtip:glitchtip@db:5432/glitchtip` | No |
| `REDIS_URL` | `redis://redis:6379` | No |
| `SECRET_KEY` | `change_me_to_something_random` | No |
| `PORT` | `8000` | No |
| `POSTGRES_USER` | `glitchtip` | No |
| `POSTGRES_PASSWORD` | `glitchtip` | No |
| `POSTGRES_DB` | `glitchtip` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs glitchtip | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [GlitchTip on AltStack Directory](https://thealtstack.com/alternative-to/glitchtip)
- [GlitchTip Self-Hosted Guide](https://thealtstack.com/self-hosted/glitchtip)
- [Official Documentation](https://glitchtip.com)
- [GitHub Repository](https://github.com/glitchtip/glitchtip)

View File

@@ -0,0 +1,132 @@
---
title: "Deploy GPT4All Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting GPT4All with Docker Compose. "
---
# Deploy GPT4All
Run open-source LLMs locally on your CPU and GPU. No internet required.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 65.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working GPT4All instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for GPT4All and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/gpt4all && cd /opt/gpt4all
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs gpt4all | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [GPT4All on AltStack Directory](https://thealtstack.com/alternative-to/gpt4all)
- [GPT4All Self-Hosted Guide](https://thealtstack.com/self-hosted/gpt4all)
- [Official Documentation](https://gpt4all.io)
- [GitHub Repository](https://github.com/nomic-ai/gpt4all)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy HunyuanVideo 1.5 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting HunyuanVideo 1.5 with Docker Compose. "
---
# Deploy HunyuanVideo 1.5
Tencent's state-of-the-art open-source video generation model with 13B parameters.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 8.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working HunyuanVideo 1.5 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for HunyuanVideo 1.5 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/hunyuan-video && cd /opt/hunyuan-video
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs hunyuan-video | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [HunyuanVideo 1.5 on AltStack Directory](https://thealtstack.com/alternative-to/hunyuan-video)
- [HunyuanVideo 1.5 Self-Hosted Guide](https://thealtstack.com/self-hosted/hunyuan-video)
- [Official Documentation](https://github.com/Tencent/HunyuanVideo)
- [GitHub Repository](https://github.com/Tencent/HunyuanVideo)

View File

@@ -0,0 +1,122 @@
---
title: "Deploy Jitsi Meet Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Jitsi Meet with Docker Compose. "
---
# Deploy Jitsi Meet
Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 28.6k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Jitsi Meet instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Jitsi Meet and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/jitsi-meet && cd /opt/jitsi-meet
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `PUBLIC_URL` | `https://localhost:8443` | No |
| `XMPP_SERVER` | `xmpp.meet.jitsi` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs jitsi-meet | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Jitsi Meet on AltStack Directory](https://thealtstack.com/alternative-to/jitsi-meet)
- [Jitsi Meet Self-Hosted Guide](https://thealtstack.com/self-hosted/jitsi-meet)
- [Official Documentation](https://jitsi.org)
- [GitHub Repository](https://github.com/jitsi/jitsi-meet)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Jitsu Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Jitsu with Docker Compose. "
---
# Deploy Jitsu
High-performance data collection platform and open-source Segment alternative.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 5.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Jitsu instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Jitsu and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/jitsu && cd /opt/jitsu
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs jitsu | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Jitsu on AltStack Directory](https://thealtstack.com/alternative-to/jitsu)
- [Jitsu Self-Hosted Guide](https://thealtstack.com/self-hosted/jitsu)
- [Official Documentation](https://jitsu.com)
- [GitHub Repository](https://github.com/jitsucom/jitsu)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Kdenlive Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Kdenlive with Docker Compose. "
---
# Deploy Kdenlive
Open source video editing software based on the MLT Framework and KDE.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 3.5k stars</span>
<span className="deploy-hero-item">📜 GPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Kdenlive instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Kdenlive and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/kdenlive && cd /opt/kdenlive
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs kdenlive | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Kdenlive on AltStack Directory](https://thealtstack.com/alternative-to/kdenlive)
- [Kdenlive Self-Hosted Guide](https://thealtstack.com/self-hosted/kdenlive)
- [Official Documentation](https://kdenlive.org)
- [GitHub Repository](https://github.com/KDE/kdenlive)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy KeePassXC Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting KeePassXC with Docker Compose. "
---
# Deploy KeePassXC
KeePassXC is a cross-platform community-driven port of the Windows application “KeePass Password Safe”.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 25.8k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working KeePassXC instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for KeePassXC and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/keepassxc && cd /opt/keepassxc
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs keepassxc | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [KeePassXC on AltStack Directory](https://thealtstack.com/alternative-to/keepassxc)
- [KeePassXC Self-Hosted Guide](https://thealtstack.com/self-hosted/keepassxc)
- [Official Documentation](https://keepassxc.org)
- [GitHub Repository](https://github.com/keepassxreboot/keepassxc)

View File

@@ -0,0 +1,149 @@
---
title: "Deploy Keycloak Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Keycloak with Docker Compose. "
---
# Deploy Keycloak
Open source identity and access management for modern applications and services.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 23.0k stars</span>
<span className="deploy-hero-item">📜 Apache 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Keycloak instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Keycloak and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/keycloak && cd /opt/keycloak
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `KEYCLOAK_ADMIN` | `admin` | No |
| `KEYCLOAK_ADMIN_PASSWORD` | `admin` | No |
| `KC_DB` | `postgres` | No |
| `KC_DB_URL` | `jdbc:postgresql://db:5432/keycloak` | No |
| `KC_DB_USERNAME` | `keycloak` | No |
| `KC_DB_PASSWORD` | `keycloak` | No |
| `POSTGRES_DB` | `keycloak` | No |
| `POSTGRES_USER` | `keycloak` | No |
| `POSTGRES_PASSWORD` | `keycloak` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs keycloak | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Keycloak on AltStack Directory](https://thealtstack.com/alternative-to/keycloak)
- [Keycloak Self-Hosted Guide](https://thealtstack.com/self-hosted/keycloak)
- [Official Documentation](https://www.keycloak.org)
- [GitHub Repository](https://github.com/keycloak/keycloak)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Krita Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Krita with Docker Compose. "
---
# Deploy Krita
Krita is a free and open source cross-platform application that offers an end-to-end solution for creating digital art files from scratch built on the KDE and Qt frameworks.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 9.3k stars</span>
<span className="deploy-hero-item">📜 GNU General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Krita instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Krita and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/krita && cd /opt/krita
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs krita | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Krita on AltStack Directory](https://thealtstack.com/alternative-to/krita)
- [Krita Self-Hosted Guide](https://thealtstack.com/self-hosted/krita)
- [Official Documentation](https://krita.org)
- [GitHub Repository](https://github.com/KDE/krita)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy LibreCAD Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting LibreCAD with Docker Compose. "
---
# Deploy LibreCAD
A mature, feature-rich 2D CAD application with a loyal user community.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 6.5k stars</span>
<span className="deploy-hero-item">📜 GPLv2</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working LibreCAD instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for LibreCAD and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/librecad && cd /opt/librecad
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs librecad | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [LibreCAD on AltStack Directory](https://thealtstack.com/alternative-to/librecad)
- [LibreCAD Self-Hosted Guide](https://thealtstack.com/self-hosted/librecad)
- [Official Documentation](https://librecad.org)
- [GitHub Repository](https://github.com/LibreCAD/LibreCAD)

View File

@@ -0,0 +1,138 @@
---
title: "Deploy Listmonk Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Listmonk with Docker Compose. "
---
# Deploy Listmonk
High performance, self-hosted newsletter and mailing list manager with a modern dashboard.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 19.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Listmonk instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Listmonk and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/listmonk && cd /opt/listmonk
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `POSTGRES_USER` | `listmonk` | No |
| `POSTGRES_PASSWORD` | `listmonk` | No |
| `POSTGRES_DB` | `listmonk` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs listmonk | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Listmonk on AltStack Directory](https://thealtstack.com/alternative-to/listmonk)
- [Listmonk Self-Hosted Guide](https://thealtstack.com/self-hosted/listmonk)
- [Official Documentation](https://listmonk.app)
- [GitHub Repository](https://github.com/knadh/listmonk)

View File

@@ -0,0 +1,118 @@
---
title: "Deploy Meta Llama 3.1 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Meta Llama 3.1 with Docker Compose. "
---
# Deploy Meta Llama 3.1
Meta's flagship open-weight model with 128K context. Supports 8B, 70B, and 405B parameters.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 65.0k stars</span>
<span className="deploy-hero-item">📜 Llama 3.1 Community License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Meta Llama 3.1 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Meta Llama 3.1 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/llama && cd /opt/llama
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs llama | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Meta Llama 3.1 on AltStack Directory](https://thealtstack.com/alternative-to/llama)
- [Meta Llama 3.1 Self-Hosted Guide](https://thealtstack.com/self-hosted/llama)
- [Official Documentation](https://llama.meta.com)
- [GitHub Repository](https://github.com/meta-llama/llama3)

View File

@@ -0,0 +1,119 @@
---
title: "Deploy Matomo Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Matomo with Docker Compose. "
---
# Deploy Matomo
Empowering People Ethically 🚀 — Matomo is hiring! Join us → https://matomo.org/jobs Matomo is the leading open-source alternative to Google Analytics, giving you complete control and built-in privacy. Easily collect, visualise, and analyse data from websites & apps. Star us on GitHub ⭐️ Pull Requests welcome!
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 21.3k stars</span>
<span className="deploy-hero-item">📜 GNU General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Matomo instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Matomo and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/matomo && cd /opt/matomo
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MATOMO_DATABASE_HOST` | `db` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs matomo | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Matomo on AltStack Directory](https://thealtstack.com/alternative-to/matomo)
- [Matomo Self-Hosted Guide](https://thealtstack.com/self-hosted/matomo)
- [Official Documentation](https://matomo.org)
- [GitHub Repository](https://github.com/matomo-org/matomo)

View File

@@ -0,0 +1,143 @@
---
title: "Deploy Mattermost Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Mattermost with Docker Compose. "
---
# Deploy Mattermost
Mattermost is an open source platform for secure collaboration across the entire software development lifecycle..
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 35.2k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Mattermost instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Mattermost and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/mattermost && cd /opt/mattermost
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MM_SQLSETTINGS_DRIVERNAME` | `postgres` | No |
| `MM_SQLSETTINGS_DATASOURCE` | `postgres://mmuser:mmuser_password@db:5432/mattermost?sslmode=disable&connect_timeout=10` | No |
| `MM_SERVICESETTINGS_SITEURL` | `http://localhost:8065` | No |
| `POSTGRES_USER` | `mmuser` | No |
| `POSTGRES_PASSWORD` | `mmuser_password` | No |
| `POSTGRES_DB` | `mattermost` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs mattermost | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Mattermost on AltStack Directory](https://thealtstack.com/alternative-to/mattermost)
- [Mattermost Self-Hosted Guide](https://thealtstack.com/self-hosted/mattermost)
- [Official Documentation](https://mattermost.com)
- [GitHub Repository](https://github.com/mattermost/mattermost)

View File

@@ -0,0 +1,153 @@
---
title: "Deploy Mautic Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Mautic with Docker Compose. "
---
# Deploy Mautic
World's largest open source marketing automation project.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 7.0k stars</span>
<span className="deploy-hero-item">📜 GPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Mautic instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Mautic and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/mautic && cd /opt/mautic
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MAUTIC_DB_HOST` | `db` | No |
| `MAUTIC_DB_USER` | `mautic` | No |
| `MAUTIC_DB_PASSWORD` | `mautic` | No |
| `MAUTIC_DB_NAME` | `mautic` | No |
| `MAUTIC_RUN_CRON_JOBS` | `true` | No |
| `plugin` | `mysql_native_password` | No |
| `MYSQL_ROOT_PASSWORD` | `root` | No |
| `MYSQL_USER` | `mautic` | No |
| `MYSQL_PASSWORD` | `mautic` | No |
| `MYSQL_DATABASE` | `mautic` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs mautic | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Mautic on AltStack Directory](https://thealtstack.com/alternative-to/mautic)
- [Mautic Self-Hosted Guide](https://thealtstack.com/self-hosted/mautic)
- [Official Documentation](https://www.mautic.org)
- [GitHub Repository](https://github.com/mautic/mautic)

View File

@@ -0,0 +1,150 @@
---
title: "Deploy Medusa.js Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Medusa.js with Docker Compose. "
---
# Deploy Medusa.js
The open-source alternative to Shopify. Building blocks for digital commerce.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 24.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Medusa.js instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Medusa.js and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/medusa && cd /opt/medusa
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgres://medusa:medusa@db:5432/medusa` | No |
| `REDIS_URL` | `redis://redis:6379` | No |
| `JWT_SECRET` | `supersecret` | No |
| `COOKIE_SECRET` | `supersecret` | No |
| `POSTGRES_USER` | `medusa` | No |
| `POSTGRES_PASSWORD` | `medusa` | No |
| `POSTGRES_DB` | `medusa` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs medusa | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Medusa.js on AltStack Directory](https://thealtstack.com/alternative-to/medusa)
- [Medusa.js Self-Hosted Guide](https://thealtstack.com/self-hosted/medusa)
- [Official Documentation](https://medusajs.com)
- [GitHub Repository](https://github.com/medusajs/medusa)

View File

@@ -0,0 +1,148 @@
---
title: "Deploy Metabase Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Metabase with Docker Compose. "
---
# Deploy Metabase
The simplest, fastest way to get business intelligence and analytics throughout your company.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 38.0k stars</span>
<span className="deploy-hero-item">📜 AGPLv3</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Metabase instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Metabase and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/metabase && cd /opt/metabase
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MB_DB_TYPE` | `postgres` | No |
| `MB_DB_DBNAME` | `metabase` | No |
| `MB_DB_PORT` | `5432` | No |
| `MB_DB_USER` | `metabase` | No |
| `MB_DB_PASS` | `metabase` | No |
| `MB_DB_HOST` | `db` | No |
| `POSTGRES_USER` | `metabase` | No |
| `POSTGRES_PASSWORD` | `metabase` | No |
| `POSTGRES_DB` | `metabase` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs metabase | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Metabase on AltStack Directory](https://thealtstack.com/alternative-to/metabase)
- [Metabase Self-Hosted Guide](https://thealtstack.com/self-hosted/metabase)
- [Official Documentation](https://www.metabase.com)
- [GitHub Repository](https://github.com/metabase/metabase)

View File

@@ -0,0 +1,128 @@
---
title: "Deploy MinIO Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting MinIO with Docker Compose. "
---
# Deploy MinIO
High-performance, S3-compatible object storage for AI and enterprise data.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 45.0k stars</span>
<span className="deploy-hero-item">📜 AGPLv3</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working MinIO instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for MinIO and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/minio && cd /opt/minio
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MINIO_ROOT_USER` | `minioadmin` | No |
| `MINIO_ROOT_PASSWORD` | `minioadmin` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs minio | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [MinIO on AltStack Directory](https://thealtstack.com/alternative-to/minio)
- [MinIO Self-Hosted Guide](https://thealtstack.com/self-hosted/minio)
- [Official Documentation](https://min.io)
- [GitHub Repository](https://github.com/minio/minio)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy Mistral Large 2 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Mistral Large 2 with Docker Compose. "
---
# Deploy Mistral Large 2
Flagship 123B model from Mistral AI. Optimized for multilingual, reasoning, and coding tasks.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 20.0k stars</span>
<span className="deploy-hero-item">📜 Mistral Research License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Mistral Large 2 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Mistral Large 2 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/mistral && cd /opt/mistral
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs mistral | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Mistral Large 2 on AltStack Directory](https://thealtstack.com/alternative-to/mistral)
- [Mistral Large 2 Self-Hosted Guide](https://thealtstack.com/self-hosted/mistral)
- [Official Documentation](https://mistral.ai)
- [GitHub Repository](https://github.com/mistralai/mistral-inference)

View File

@@ -0,0 +1,156 @@
---
title: "Deploy Mixpost Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Mixpost with Docker Compose. "
---
# Deploy Mixpost
Self-hosted social media management software.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 3.0k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Mixpost instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Mixpost and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/mixpost && cd /opt/mixpost
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `APP_URL` | `http://localhost` | No |
| `DB_HOST` | `db` | No |
| `DB_DATABASE` | `mixpost` | No |
| `DB_USERNAME` | `mixpost` | No |
| `DB_PASSWORD` | `mixpost` | No |
| `REDIS_HOST` | `redis` | No |
| `MYSQL_DATABASE` | `mixpost` | No |
| `MYSQL_USER` | `mixpost` | No |
| `MYSQL_PASSWORD` | `mixpost` | No |
| `MYSQL_ROOT_PASSWORD` | `root` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs mixpost | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Mixpost on AltStack Directory](https://thealtstack.com/alternative-to/mixpost)
- [Mixpost Self-Hosted Guide](https://thealtstack.com/self-hosted/mixpost)
- [Official Documentation](https://mixpost.app)
- [GitHub Repository](https://github.com/inovector/mixpost)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Mochi-1 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Mochi-1 with Docker Compose. "
---
# Deploy Mochi-1
High-fidelity open-weights video generation model from Genmo, rivaling closed-source alternatives.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 5.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Mochi-1 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Mochi-1 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/mochi-1 && cd /opt/mochi-1
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs mochi-1 | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Mochi-1 on AltStack Directory](https://thealtstack.com/alternative-to/mochi-1)
- [Mochi-1 Self-Hosted Guide](https://thealtstack.com/self-hosted/mochi-1)
- [Official Documentation](https://www.genmo.ai)
- [GitHub Repository](https://github.com/genmoai/mochi1)

View File

@@ -0,0 +1,138 @@
---
title: "Deploy n8n Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting n8n with Docker Compose. "
---
# Deploy n8n
Fair-code workflow automation tool. Easily automate tasks across different services.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 49.0k stars</span>
<span className="deploy-hero-item">📜 Sustainable Use License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working n8n instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for n8n and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/n8n && cd /opt/n8n
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `N8N_BASIC_AUTH_ACTIVE` | `true` | No |
| `N8N_BASIC_AUTH_USER` | `admin` | No |
| `N8N_BASIC_AUTH_PASSWORD` | `password` | No |
| `N8N_HOST` | `localhost` | No |
| `N8N_PORT` | `5678` | No |
| `N8N_PROTOCOL` | `http` | No |
| `NODE_ENV` | `production` | No |
| `WEBHOOK_URL` | `http://localhost:5678/` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs n8n | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [n8n on AltStack Directory](https://thealtstack.com/alternative-to/n8n)
- [n8n Self-Hosted Guide](https://thealtstack.com/self-hosted/n8n)
- [Official Documentation](https://n8n.io)
- [GitHub Repository](https://github.com/n8n-io/n8n)

View File

@@ -0,0 +1,161 @@
---
title: "Deploy Odoo Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Odoo with Docker Compose. "
---
# Deploy Odoo
A suite of open source business apps: CRM, eCommerce, accounting, manufacturing, warehouse, and more.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 48.9k stars</span>
<span className="deploy-hero-item">📜 LGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Odoo instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Odoo and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/odoo && cd /opt/odoo
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `HOST` | `db` | No |
| `USER` | `odoo` | No |
| `PASSWORD` | `odoo` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs odoo | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Odoo on AltStack Directory](https://thealtstack.com/alternative-to/odoo)
- [Odoo Self-Hosted Guide](https://thealtstack.com/self-hosted/odoo)
- [Official Documentation](https://www.odoo.com)
- [GitHub Repository](https://github.com/odoo/odoo)

View File

@@ -0,0 +1,137 @@
---
title: "Deploy Ollama Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Ollama with Docker Compose. "
---
# Deploy Ollama
Get up and running with Llama 3, Mistral, Gemma, and other large language models locally.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 60.0k stars</span>
<span className="deploy-hero-item">📜 MIT License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Ollama instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Ollama and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/ollama && cd /opt/ollama
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs ollama | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Ollama on AltStack Directory](https://thealtstack.com/alternative-to/ollama)
- [Ollama Self-Hosted Guide](https://thealtstack.com/self-hosted/ollama)
- [Official Documentation](https://ollama.com)
- [GitHub Repository](https://github.com/ollama/ollama)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy ONLYOFFICE Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting ONLYOFFICE with Docker Compose. "
---
# Deploy ONLYOFFICE
Powerful online document editors for text, spreadsheets, and presentations. Highly compatible with MS Office.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 11.0k stars</span>
<span className="deploy-hero-item">📜 AGPLv3</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working ONLYOFFICE instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for ONLYOFFICE and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/onlyoffice && cd /opt/onlyoffice
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs onlyoffice | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [ONLYOFFICE on AltStack Directory](https://thealtstack.com/alternative-to/onlyoffice)
- [ONLYOFFICE Self-Hosted Guide](https://thealtstack.com/self-hosted/onlyoffice)
- [Official Documentation](https://www.onlyoffice.com)
- [GitHub Repository](https://github.com/ONLYOFFICE/DocumentServer)

View File

@@ -0,0 +1,146 @@
---
title: "Deploy OrangeHRM Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting OrangeHRM with Docker Compose. "
---
# Deploy OrangeHRM
The world's most popular open source human resource management software.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 1.2k stars</span>
<span className="deploy-hero-item">📜 GPLv2</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working OrangeHRM instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for OrangeHRM and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/orangehrm && cd /opt/orangehrm
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `ORANGEHRM_DATABASE_HOST` | `db` | No |
| `ORANGEHRM_DATABASE_USER` | `orangehrm` | No |
| `ORANGEHRM_DATABASE_PASSWORD` | `orangehrm` | No |
| `ORANGEHRM_DATABASE_NAME` | `orangehrm` | No |
| `MYSQL_ROOT_PASSWORD` | `root` | No |
| `MYSQL_USER` | `orangehrm` | No |
| `MYSQL_PASSWORD` | `orangehrm` | No |
| `MYSQL_DATABASE` | `orangehrm` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs orangehrm | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [OrangeHRM on AltStack Directory](https://thealtstack.com/alternative-to/orangehrm)
- [OrangeHRM Self-Hosted Guide](https://thealtstack.com/self-hosted/orangehrm)
- [Official Documentation](https://www.orangehrm.com)
- [GitHub Repository](https://github.com/orangehrm/orangehrm)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Outline Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Outline with Docker Compose. "
---
# Deploy Outline
Fast, collaborative, knowledge base for your team built using React and Markdown.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 24.0k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Outline instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Outline and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/outline && cd /opt/outline
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs outline | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Outline on AltStack Directory](https://thealtstack.com/alternative-to/outline)
- [Outline Self-Hosted Guide](https://thealtstack.com/self-hosted/outline)
- [Official Documentation](https://www.getoutline.com)
- [GitHub Repository](https://github.com/outline/outline)

171
docs/app/deploy/page.mdx Normal file
View File

@@ -0,0 +1,171 @@
---
title: "Deploy Guides"
description: "65+ self-hosting deploy guides with Docker Compose configs. Find your tool, copy the config, ship it."
---
# Deploy Guides
Every guide follows the same pattern: **copy the Docker Compose config, tweak the `.env`, run `docker compose up -d`.** Done.
> 💡 **New to self-hosting?** Start with the [Quick Start](/quick-start) guide first, then come back here.
---
## 🤖 AI & Machine Learning
Run AI models on your own hardware. No API keys, no usage limits, no data leaving your server.
| Tool | What It Does |
|---|---|
| [Ollama](/deploy/ollama) | Run LLMs locally with a simple CLI |
| [DeepSeek](/deploy/deepseek) | DeepSeek-V3 / R1 reasoning models |
| [Meta Llama](/deploy/llama) | Meta's open-weight Llama 3.1 |
| [Mistral](/deploy/mistral) | Mistral Large 2 — fast and capable |
| [Qwen](/deploy/qwen) | Alibaba's Qwen 2.5 models |
| [Google Gemma](/deploy/gemma) | Google's lightweight open models |
| [GPT4All](/deploy/gpt4all) | Desktop-first local LLM runner |
| [Continue](/deploy/continue-dev) | AI code assistant for VS Code/JetBrains |
| [TabbyML](/deploy/tabby) | Self-hosted GitHub Copilot alternative |
| [Stable Diffusion](/deploy/stable-diffusion) | AI image generation (SD 3.5) |
| [FLUX](/deploy/flux) | Next-gen image generation |
| [HunyuanVideo](/deploy/hunyuan-video) | AI video generation |
| [Mochi-1](/deploy/mochi-1) | Text-to-video AI |
---
## 📊 Analytics & Monitoring
Own your data. No more sending user behavior to Google.
| Tool | What It Does |
|---|---|
| [Plausible](/deploy/plausible) | Privacy-first web analytics |
| [PostHog](/deploy/posthog) | Product analytics + session replay |
| [Matomo](/deploy/matomo) | Full Google Analytics replacement |
| [Jitsu](/deploy/jitsu) | Open-source Segment alternative |
| [Metabase](/deploy/metabase) | Business intelligence dashboards |
| [Apache Superset](/deploy/superset) | Enterprise data visualization |
| [GlitchTip](/deploy/glitchtip) | Error tracking (Sentry alternative) |
| [SigNoz](/deploy/signoz) | Full-stack observability platform |
| [Uptime Kuma](/deploy/uptime-kuma) | Beautiful uptime monitoring |
---
## 💬 Productivity & Collaboration
Replace Slack, Notion, and Jira — on your terms.
| Tool | What It Does |
|---|---|
| [Mattermost](/deploy/mattermost) | Slack alternative for teams |
| [Rocket.Chat](/deploy/rocketchat) | Team chat with omnichannel support |
| [Outline](/deploy/outline) | Beautiful team knowledge base |
| [AFFiNE](/deploy/affine) | Notion + Miro hybrid workspace |
| [AppFlowy](/deploy/appflowy) | Open-source Notion alternative |
| [ONLYOFFICE](/deploy/onlyoffice) | Self-hosted Google Docs/Sheets |
| [Plane](/deploy/plane) | Project management (Jira alternative) |
| [Taiga](/deploy/taiga) | Agile project management |
| [Cal.com](/deploy/calcom) | Scheduling (Calendly alternative) |
| [Documenso](/deploy/documenso) | Digital signatures (DocuSign alternative) |
| [Zammad](/deploy/zammad) | Helpdesk & ticketing system |
---
## 🏢 Business & CRM
Run your business without SaaS subscriptions.
| Tool | What It Does |
|---|---|
| [Odoo](/deploy/odoo) | Full ERP suite (CRM, accounting, HR) |
| [ERPNext](/deploy/erpnext) | Manufacturing & distribution ERP |
| [Twenty](/deploy/twenty) | Modern CRM (Salesforce alternative) |
| [Akaunting](/deploy/akaunting) | Free accounting software |
| [OrangeHRM](/deploy/orangehrm) | HR management platform |
| [Medusa.js](/deploy/medusa) | Headless e-commerce engine |
---
## 🔐 Security & Authentication
Control who gets in. Period.
| Tool | What It Does |
|---|---|
| [Keycloak](/deploy/keycloak) | Enterprise identity & access management |
| [Authentik](/deploy/authentik) | Modern SSO and user management |
| [Vaultwarden](/deploy/vaultwarden) | Bitwarden-compatible password vault |
| [Bitwarden](/deploy/bitwarden) | Official password manager server |
| [KeePassXC](/deploy/keepassxc) | Offline password manager |
---
## ⚙️ DevOps & Infrastructure
The tools that run your tools.
| Tool | What It Does |
|---|---|
| [Coolify](/deploy/coolify) | Self-hosted Vercel/Netlify |
| [Dokku](/deploy/dokku) | Mini Heroku on your server |
| [n8n](/deploy/n8n) | Workflow automation (Zapier alternative) |
| [Activepieces](/deploy/activepieces) | Visual automation builder |
| [Coder](/deploy/coder) | Cloud development environments |
| [MinIO](/deploy/minio) | S3-compatible object storage |
| [PocketBase](/deploy/pocketbase) | Backend in a single binary |
| [Appwrite](/deploy/appwrite) | Firebase alternative |
| [Supabase](/deploy/supabase) | Postgres-powered Firebase alternative |
---
## 📧 Marketing & Email
Send emails, run campaigns, own your audience.
| Tool | What It Does |
|---|---|
| [Listmonk](/deploy/listmonk) | Newsletter & mailing list manager |
| [Mautic](/deploy/mautic) | Marketing automation platform |
| [Postal](/deploy/postal) | Mail delivery platform (Mailgun alternative) |
| [Mixpost](/deploy/mixpost) | Social media management |
| [Chaskiq](/deploy/chaskiq) | Customer messaging platform |
---
## 🎨 Creative Tools
Design, edit, and create without Adobe subscriptions.
| Tool | What It Does |
|---|---|
| [Penpot](/deploy/penpot) | Design & prototyping (Figma alternative) |
| [GIMP](/deploy/gimp) | Image editing (Photoshop alternative) |
| [Krita](/deploy/krita) | Digital painting & illustration |
| [Kdenlive](/deploy/kdenlive) | Video editing |
| [FreeCAD](/deploy/freecad) | 3D parametric modeling |
| [LibreCAD](/deploy/librecad) | 2D CAD drafting |
---
## 🔌 Communication
| Tool | What It Does |
|---|---|
| [Jitsi Meet](/deploy/jitsi-meet) | Video conferencing (Zoom alternative) |
---
## Prerequisites for All Guides
Every guide assumes you have:
- A server with Docker and Docker Compose installed → [Setup Guide](/quick-start/choosing-a-server)
- Basic terminal access (SSH)
- A domain name (optional but recommended) → [Reverse Proxy Setup](/concepts/reverse-proxies)
## Essential Reading
Before your first deploy, read these:
- [Docker in 10 Minutes](/concepts/docker-basics)
- [Reverse Proxies Explained](/concepts/reverse-proxies)
- [SSL/TLS for Self-Hosters](/concepts/ssl-tls)
- [Backups That Actually Work](/concepts/backups)

View File

@@ -0,0 +1,185 @@
---
title: "Deploy Penpot Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Penpot with Docker Compose. "
---
# Deploy Penpot
Penpot: The open-source design tool for design and code collaboration
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 44.2k stars</span>
<span className="deploy-hero-item">📜 Mozilla Public License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Penpot instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Penpot and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/penpot && cd /opt/penpot
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `PENPOT_FLAGS` | `disable-registration disable-login-with-password` | No |
| `PENPOT_DATABASE_URI` | `postgresql://penpot-postgres/penpot` | No |
| `PENPOT_DATABASE_USERNAME` | `penpot` | No |
| `PENPOT_DATABASE_PASSWORD` | `penpot` | No |
| `PENPOT_REDIS_URI` | `redis://penpot-redis/0` | No |
| `PENPOT_ASSETS_STORAGE_BACKEND` | `assets-fs` | No |
| `PENPOT_STORAGE_ASSETS_FS_DIRECTORY` | `/opt/data/assets` | No |
| `PENPOT_TELEMETRY_ENABLED` | `false` | No |
| `POSTGRES_INITDB_ARGS` | `--data-checksums` | No |
| `POSTGRES_DB` | `penpot` | No |
| `POSTGRES_USER` | `penpot` | No |
| `POSTGRES_PASSWORD` | `penpot` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs penpot | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Penpot on AltStack Directory](https://thealtstack.com/alternative-to/penpot)
- [Penpot Self-Hosted Guide](https://thealtstack.com/self-hosted/penpot)
- [Official Documentation](https://penpot.app)
- [GitHub Repository](https://github.com/penpot/penpot)

View File

@@ -0,0 +1,160 @@
---
title: "Deploy Plane Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Plane with Docker Compose. "
---
# Deploy Plane
🔥🔥🔥 Open-source Jira, Linear, Monday, and ClickUp alternative. Plane is a modern project management platform to manage tasks, sprints, docs, and triage.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 45.5k stars</span>
<span className="deploy-hero-item">📜 GNU Affero General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Plane instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Plane and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/plane && cd /opt/plane
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgres://plane:plane@plane-db:5432/plane` | No |
| `REDIS_URL` | `redis://plane-redis:6379/` | No |
| `SECRET_KEY` | `replace-me-with-a-secure-key` | No |
| `POSTGRES_USER` | `plane` | No |
| `POSTGRES_PASSWORD` | `plane` | No |
| `POSTGRES_DB` | `plane` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs plane | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Plane on AltStack Directory](https://thealtstack.com/alternative-to/plane)
- [Plane Self-Hosted Guide](https://thealtstack.com/self-hosted/plane)
- [Official Documentation](https://plane.so)
- [GitHub Repository](https://github.com/makeplane/plane)

View File

@@ -0,0 +1,179 @@
---
title: "Deploy Plausible Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Plausible with Docker Compose. "
---
# Deploy Plausible
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 24.2k stars</span>
<span className="deploy-hero-item">📜 GNU Affero General Public License v3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
A production-ready Plausible Analytics instance. Note that Plausible uses a two-database architecture:
- **PostgreSQL:** Stores your users, sites, and metadata.
- **ClickHouse:** A high-performance columnar database that stores the millions of raw events (pageviews) you'll be collecting.
> 🌍 **Geolocation Tip:** To see where your visitors are coming from, you'll need to download the free MaxMind GeoLite2 database after deployment and place it in the `./geoip` folder.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Plausible and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/plausible && cd /opt/plausible
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `BASE_URL` | `http://localhost:8000` | No |
| `SECRET_KEY_BASE` | `ChangeMeChangeMeChangeMeChangeMeChangeMeChangeMeChangeMeChangeMe` | No |
| `DATABASE_URL` | `postgres://postgres:postgres@plausible_db:5432/plausible_db` | No |
| `CLICKHOUSE_DATABASE_URL` | `http://plausible_events_db:8123/plausible_events_db` | No |
| `MAILER_EMAIL` | `admin@example.com` | No |
| `SMTP_HOST_ADDR` | `mail` | No |
| `SMTP_HOST_PORT` | `25` | No |
| `SMTP_SSL_Enabled` | `false` | No |
| `POSTGRES_PASSWORD` | `postgres` | No |
| `POSTGRES_DB` | `plausible_db` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs plausible | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Plausible on AltStack Directory](https://thealtstack.com/alternative-to/plausible)
- [Plausible Self-Hosted Guide](https://thealtstack.com/self-hosted/plausible)
- [Official Documentation](https://plausible.io)
- [GitHub Repository](https://github.com/plausible/analytics)

View File

@@ -0,0 +1,118 @@
---
title: "Deploy PocketBase Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting PocketBase with Docker Compose. "
---
# Deploy PocketBase
Open Source realtime backend in 1 file
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 56.0k stars</span>
<span className="deploy-hero-item">📜 MIT License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working PocketBase instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for PocketBase and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/pocketbase && cd /opt/pocketbase
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs pocketbase | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [PocketBase on AltStack Directory](https://thealtstack.com/alternative-to/pocketbase)
- [PocketBase Self-Hosted Guide](https://thealtstack.com/self-hosted/pocketbase)
- [Official Documentation](https://pocketbase.io)
- [GitHub Repository](https://github.com/pocketbase/pocketbase)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Postal Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Postal with Docker Compose. "
---
# Deploy Postal
A fully featured open source mail delivery platform for incoming & outgoing e-mail.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 15.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Postal instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Postal and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/postal && cd /opt/postal
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs postal | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Postal on AltStack Directory](https://thealtstack.com/alternative-to/postal)
- [Postal Self-Hosted Guide](https://thealtstack.com/self-hosted/postal)
- [Official Documentation](https://postalserver.io)
- [GitHub Repository](https://github.com/postalserver/postal)

View File

@@ -0,0 +1,199 @@
---
title: "Deploy PostHog Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting PostHog with Docker Compose. "
---
# Deploy PostHog
🦔 PostHog is an all-in-one developer platform for building successful products. We offer product analytics, web analytics, session replay, error tracking, feature flags, experimentation, surveys, data warehouse, a CDP, and an AI product assistant to help debug your code, ship features faster, and keep all your usage and customer data in one stack.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 31.2k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working PostHog instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for PostHog and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/posthog && cd /opt/posthog
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `POSTGRES_PASSWORD` | `posthog` | No |
| `POSTGRES_DB` | `posthog` | No |
| `POSTGRES_USER` | `posthog` | No |
| `CLICKHOUSE_DB` | `posthog` | No |
| `CLICKHOUSE_USER` | `default` | No |
| `KAFKA_ZOOKEEPER_CONNECT` | `zookeeper:2181` | No |
| `KAFKA_ADVERTISED_LISTENERS` | `PLAINTEXT://kafka:9092` | No |
| `KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR` | `1` | No |
| `ZOOKEEPER_CLIENT_PORT` | `2181` | No |
| `ZOOKEEPER_TICK_TIME` | `2000` | No |
| `DATABASE_URL` | `postgres://posthog:posthog@db:5432/posthog` | No |
| `REDIS_URL` | `redis://redis:6379/` | No |
| `CLICKHOUSE_HOST` | `clickhouse` | No |
| `KAFKA_HOSTS` | `kafka:9092` | No |
| `SECRET_KEY` | `please-change-this-secret-key-in-production-12345` | No |
| `SKIP_SERVICE_VERSION_REQUIREMENTS` | `1` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs posthog | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [PostHog on AltStack Directory](https://thealtstack.com/alternative-to/posthog)
- [PostHog Self-Hosted Guide](https://thealtstack.com/self-hosted/posthog)
- [Official Documentation](https://posthog.com)
- [GitHub Repository](https://github.com/PostHog/posthog)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy Qwen 2.5 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Qwen 2.5 with Docker Compose. "
---
# Deploy Qwen 2.5
Comprehensive LLM series from Alibaba Cloud, excelling in coding, math, and multilingual support.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 50.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Qwen 2.5 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Qwen 2.5 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/qwen && cd /opt/qwen
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs qwen | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Qwen 2.5 on AltStack Directory](https://thealtstack.com/alternative-to/qwen)
- [Qwen 2.5 Self-Hosted Guide](https://thealtstack.com/self-hosted/qwen)
- [Official Documentation](https://qwenlm.github.io)
- [GitHub Repository](https://github.com/QwenLM/Qwen2.5)

View File

@@ -0,0 +1,144 @@
---
title: "Deploy Rocket.Chat Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Rocket.Chat with Docker Compose. "
---
# Deploy Rocket.Chat
The Secure CommsOS™ for mission-critical operations
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 44.5k stars</span>
<span className="deploy-hero-item">📜 Other</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Rocket.Chat instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Rocket.Chat and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/rocketchat && cd /opt/rocketchat
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `MONGO_URL` | `mongodb://mongo:27017/rocketchat` | No |
| `ROOT_URL` | `http://localhost:3002` | No |
| `PORT` | `3000` | No |
| `storageEngine` | `wiredTiger` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs rocketchat | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Rocket.Chat on AltStack Directory](https://thealtstack.com/alternative-to/rocketchat)
- [Rocket.Chat Self-Hosted Guide](https://thealtstack.com/self-hosted/rocketchat)
- [Official Documentation](https://rocket.chat)
- [GitHub Repository](https://github.com/RocketChat/Rocket.Chat)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy SigNoz Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting SigNoz with Docker Compose. "
---
# Deploy SigNoz
Open source observability platform. SigNoz helps developers monitor applications and troubleshoot problems.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 18.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working SigNoz instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for SigNoz and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/signoz && cd /opt/signoz
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs signoz | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [SigNoz on AltStack Directory](https://thealtstack.com/alternative-to/signoz)
- [SigNoz Self-Hosted Guide](https://thealtstack.com/self-hosted/signoz)
- [Official Documentation](https://signoz.io)
- [GitHub Repository](https://github.com/signoz/signoz)

View File

@@ -0,0 +1,112 @@
---
title: "Deploy Stable Diffusion 3.5 Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Stable Diffusion 3.5 with Docker Compose. "
---
# Deploy Stable Diffusion 3.5
The latest open-weights image generation model from Stability AI, offering superior prompt adherence.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 10.0k stars</span>
<span className="deploy-hero-item">📜 Stability Community License</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Stable Diffusion 3.5 instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Stable Diffusion 3.5 and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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"
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/stable-diffusion && cd /opt/stable-diffusion
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs stable-diffusion | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Stable Diffusion 3.5 on AltStack Directory](https://thealtstack.com/alternative-to/stable-diffusion)
- [Stable Diffusion 3.5 Self-Hosted Guide](https://thealtstack.com/self-hosted/stable-diffusion)
- [Official Documentation](https://stability.ai)
- [GitHub Repository](https://github.com/Stability-AI/sd3.5)

View File

@@ -0,0 +1,208 @@
---
title: "Deploy Supabase Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Supabase with Docker Compose. "
---
# Deploy Supabase
The Postgres development platform. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 97.4k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
A fully working Supabase instance running on your server. This isn't just a database; it's a full backend-as-a-service including:
- **PostgreSQL:** The world's most advanced relational database.
- **GoTrue:** User management and JWT-based authentication.
- **PostgREST:** Turns your database into a RESTful API automatically.
- **Realtime:** Listen to database changes via WebSockets.
- **Storage:** S3-compatible file storage.
> ⚠️ **Critical Security Note:** The default configuration uses "postgres" as the password and a temporary JWT secret. You MUST change these in your `.env` file before exposing this to the internet.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Supabase and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/supabase && cd /opt/supabase
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `POSTGRES_PASSWORD` | `postgres` | No |
| `SITE_URL` | `http://localhost:3000` | No |
| `JWT_SECRET` | `super-secret-jwt-token-don-not-use-in-prod` | No |
| `ANON_KEY` | `—` | ✅ Yes |
| `SERVICE_KEY` | `—` | ✅ Yes |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs supabase | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Supabase on AltStack Directory](https://thealtstack.com/alternative-to/supabase)
- [Supabase Self-Hosted Guide](https://thealtstack.com/self-hosted/supabase)
- [Official Documentation](https://supabase.com)
- [GitHub Repository](https://github.com/supabase/supabase)

View File

@@ -0,0 +1,171 @@
---
title: "Deploy Apache Superset Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Apache Superset with Docker Compose. "
---
# Deploy Apache Superset
Enterprise-ready business intelligence web application.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 59.0k stars</span>
<span className="deploy-hero-item">📜 Apache 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Apache Superset instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Apache Superset and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/superset && cd /opt/superset
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `DATABASE_URL` | `postgresql://superset:superset@db:5432/superset` | No |
| `REDIS_URL` | `redis://redis:6379` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs superset | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Apache Superset on AltStack Directory](https://thealtstack.com/alternative-to/superset)
- [Apache Superset Self-Hosted Guide](https://thealtstack.com/self-hosted/superset)
- [Official Documentation](https://superset.apache.org)
- [GitHub Repository](https://github.com/apache/superset)

View File

@@ -0,0 +1,117 @@
---
title: "Deploy TabbyML Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting TabbyML with Docker Compose. "
---
# Deploy TabbyML
Self-hosted AI coding assistant. An open-source, self-hosted alternative to GitHub Copilot.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 25.0k stars</span>
<span className="deploy-hero-item">📜 Apache License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working TabbyML instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for TabbyML and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/tabby && cd /opt/tabby
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs tabby | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [TabbyML on AltStack Directory](https://thealtstack.com/alternative-to/tabby)
- [TabbyML Self-Hosted Guide](https://thealtstack.com/self-hosted/tabby)
- [Official Documentation](https://tabby.tabbyml.com)
- [GitHub Repository](https://github.com/TabbyML/tabby)

View File

@@ -0,0 +1,172 @@
---
title: "Deploy Taiga Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Taiga with Docker Compose. "
---
# Deploy Taiga
Self-host Taiga on your own server.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 0.8k stars</span>
<span className="deploy-hero-item">📜 Mozilla Public License 2.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Taiga instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Taiga and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/taiga && cd /opt/taiga
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `TAIGA_URL` | `http://localhost:9000` | No |
| `TAIGA_WEBSOCKETS_URL` | `ws://localhost:9000` | No |
| `POSTGRES_DB` | `taiga` | No |
| `POSTGRES_USER` | `taiga` | No |
| `POSTGRES_PASSWORD` | `taiga` | No |
| `TAIGA_SECRET_KEY` | `exe3quu8Su2wohx0uNgo0eif4wohphah` | No |
| `RABBITMQ_ERLANG_COOKIE` | `secret-cookie` | No |
| `RABBITMQ_DEFAULT_USER` | `taiga` | No |
| `RABBITMQ_DEFAULT_PASS` | `taiga` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs taiga | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Taiga on AltStack Directory](https://thealtstack.com/alternative-to/taiga)
- [Taiga Self-Hosted Guide](https://thealtstack.com/self-hosted/taiga)
- [Official Documentation](https://taiga.io)
- [GitHub Repository](https://github.com/taigaio/taiga-back)

View File

@@ -0,0 +1,140 @@
---
title: "Deploy Twenty Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Twenty with Docker Compose. "
---
# Deploy Twenty
A modern open-source CRM alternative to Salesforce and Pipedrive.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 15.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Twenty instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Twenty and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/twenty && cd /opt/twenty
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `PG_DATABASE_URL` | `postgres://twenty:twenty@db:5432/twenty` | No |
| `FRONTEND_URL` | `http://localhost:3000` | No |
| `POSTGRES_USER` | `twenty` | No |
| `POSTGRES_PASSWORD` | `twenty` | No |
| `POSTGRES_DB` | `twenty` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs twenty | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Twenty on AltStack Directory](https://thealtstack.com/alternative-to/twenty)
- [Twenty Self-Hosted Guide](https://thealtstack.com/self-hosted/twenty)
- [Official Documentation](https://twenty.com)
- [GitHub Repository](https://github.com/twentyhq/twenty)

View File

@@ -0,0 +1,130 @@
---
title: "Deploy Uptime Kuma Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Uptime Kuma with Docker Compose. "
---
# Deploy Uptime Kuma
A fancy self-hosted monitoring tool.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 55.0k stars</span>
<span className="deploy-hero-item">📜 MIT</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Uptime Kuma instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Uptime Kuma and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs uptime-kuma | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Uptime Kuma on AltStack Directory](https://thealtstack.com/alternative-to/uptime-kuma)
- [Uptime Kuma Self-Hosted Guide](https://thealtstack.com/self-hosted/uptime-kuma)
- [Official Documentation](https://uptime.kuma.pet)
- [GitHub Repository](https://github.com/louislam/uptime-kuma)

View File

@@ -0,0 +1,126 @@
---
title: "Deploy Vaultwarden Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Vaultwarden with Docker Compose. "
---
# Deploy Vaultwarden
Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 32.0k stars</span>
<span className="deploy-hero-item">📜 AGPL-3.0</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Vaultwarden instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Vaultwarden and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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:
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/vaultwarden && cd /opt/vaultwarden
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `WEBSOCKET_ENABLED` | `true` | No |
| `SIGNUPS_ALLOWED` | `true` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs vaultwarden | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Vaultwarden on AltStack Directory](https://thealtstack.com/alternative-to/vaultwarden)
- [Vaultwarden Self-Hosted Guide](https://thealtstack.com/self-hosted/vaultwarden)
- [Official Documentation](https://github.com/dani-garcia/vaultwarden)
- [GitHub Repository](https://github.com/dani-garcia/vaultwarden)

View File

@@ -0,0 +1,142 @@
---
title: "Deploy Zammad Self-Hosted (Docker)"
description: "Step-by-step guide to self-hosting Zammad with Docker Compose. "
---
# Deploy Zammad
A web-based, open source helpdesk/customer support system with many features.
<div className="deploy-hero">
<span className="deploy-hero-item">⭐ 5.0k stars</span>
<span className="deploy-hero-item">📜 AGPLv3</span>
<span className="deploy-hero-item">🔴 Advanced</span>
<span className="deploy-hero-item">⏱ ~20 minutes</span>
</div>
<div className="mt-8 mb-4">
<a
href="https://m.do.co/c/2ed27757a361"
target="_blank"
rel="noopener noreferrer"
className="flex items-center justify-center w-full px-6 py-4 text-lg font-bold text-white transition-all bg-blue-600 rounded-xl hover:bg-blue-700 hover:scale-[1.02] shadow-lg shadow-blue-500/30"
>
🚀 Deploy on DigitalOcean ($200 Free Credit)
</a>
</div>
## What You'll Get
A fully working Zammad instance running on your server. Your data stays on your hardware — no third-party access, no usage limits, no surprise invoices.
## Prerequisites
- A server with Docker and Docker Compose installed ([setup guide](/quick-start/choosing-a-server))
- A domain name pointed to your server (optional but recommended)
- Basic terminal access (SSH)
## The Config
Create a directory for Zammad and add this `docker-compose.yml`:
```yaml
# -------------------------------------------------------------------------
# 🚀 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
```
## Let's Ship It
```bash
# Create a directory
mkdir -p /opt/zammad && cd /opt/zammad
# Create the docker-compose.yml (paste the config above)
nano docker-compose.yml
# Pull images and start
docker compose up -d
# Watch the logs
docker compose logs -f
```
## Environment Variables
| Variable | Default | Required |
|---|---|---|
| `POSTGRES_USER` | `zammad` | No |
| `POSTGRES_PASSWORD` | `zammad` | No |
## Post-Deployment Checklist
- [ ] Service is accessible on the configured port
- [ ] Admin account created (if applicable)
- [ ] Reverse proxy configured ([Caddy guide](/concepts/reverse-proxies))
- [ ] SSL/HTTPS working
- [ ] Backup script set up ([backup guide](/concepts/backups))
- [ ] Uptime monitor added ([Uptime Kuma](/deploy/uptime-kuma))
## The "I Broke It" Section
**Container won't start?**
```bash
docker compose logs zammad | tail -50
```
**Port already in use?**
```bash
# Find what's using the port
lsof -i :PORT_NUMBER
```
**Need to start fresh?**
```bash
docker compose down -v # ⚠️ This deletes volumes/data!
docker compose up -d
```
## Going Further
- [Zammad on AltStack Directory](https://thealtstack.com/alternative-to/zammad)
- [Zammad Self-Hosted Guide](https://thealtstack.com/self-hosted/zammad)
- [Official Documentation](https://zammad.org)
- [GitHub Repository](https://github.com/zammad/zammad)