🛠️ Self-Host-Stack
A multi-container stack for self-hosting services: Mail Server, Nextcloud, PBX, and Reverse Proxy. Designed for learning, testing, and private deployments.
Self-Host-Stack demonstrates how to run and connect multiple network services using Docker Compose. It includes:
- Mail Server (Docker Mailserver + Roundcube)
- Nextcloud (with MariaDB, Redis, Nginx)
- PBX (Asterisk)
- Reverse Proxy (Nginx + Node.js backend)
All services use example data and are ready for local testing or further customization.
| Service | Type | Description | Auth Required |
|---|---|---|---|
| Mail Server | SMTP/IMAP + Webmail | Email server with webmail (Roundcube) | ❌ |
| Nextcloud | File Cloud | Private cloud storage and collaboration | ❌ |
| PBX | VoIP (Asterisk) | SIP extensions and basic dialplan | ❌ |
| Reverse Proxy | Nginx + Node.js | HTTP proxy and backend demo | ❌ |
mail-server/
docker-compose.yml
docker-data/
dms/
setup.sh
mysql/
roundcube/
nextcloud/
docker-compose.yml
nginx.conf
config/
data/
db/
ssl/
pbx/
docker-compose.yml
asterisk/
extensions.conf
modules.conf
rtp.conf
sip.conf
reverse-proxy/
docker-compose.yml
backend/
Dockerfile
package.json
server.js
nginx/
nginx.conf
| Requirement | Version | Download |
|---|---|---|
| Docker | Latest | Download |
| Docker Compose | Latest | Download |
git clone https://github.com/cesarMalanco/Self-Host-Stack.git
cd Self-Host-Stack- Go to the
mail-serverdirectory:cd mail-server docker-compose up --build -d - Access Roundcube webmail at
http://localhost:8080. - Example credentials are set in the config files. Change them for production use.
- Go to the
nextclouddirectory:cd ../nextcloud docker-compose up --build -d - Access Nextcloud at
http://localhostorhttps://localhost(SSL config uses example certs). - Default database and user credentials are examples. Update for production.
- Go to the
pbxdirectory:cd ../pbx docker-compose up --build -d - SIP extensions and dialplan are defined in
asterisk/sip.confandasterisk/extensions.conf. - Use a SIP client to connect to example extensions (see config for details).
- Go to the
reverse-proxydirectory:cd ../reverse-proxy docker-compose up --build -d - Nginx listens on port 80 and proxies requests to the Node.js backend.
- Access the backend demo at
http://localhost.
- All configuration files use example data. Replace with your own domains, passwords, and settings for production.
- Each service can be started independently or together.
- Modify configs to add more features or integrate with other services.
This project is licensed under the MIT License - see the LICENSE file for details.