88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
# Docker Appliance
|
|
|
|
A simple, powerful Debian-based Docker server with a beautiful web interface powered by [Portainer](https://www.portainer.io/). This appliance provides a dedicated server running Docker, Docker Compose, Portainer, NGINX reverse proxy, and optional SSL via Certbot, all managed from within your browser. Whether you're looking for a private Docker server to host your applications, or a way to host projects for customers, this project is perfect for you.
|
|
|
|
---
|
|
|
|
## 🚀 Features
|
|
|
|
- 🔧 Installs Docker Engine + Compose plugin
|
|
- 🌐 Web-based UI with Portainer Community Edition
|
|
- 🔁 Reverse proxy via NGINX (http://docker.local)
|
|
- 🔐 Certbot-ready for optional HTTPS
|
|
- 🐳 Runs directly on Debian - no container nesting
|
|
- 🔒 No desktop UI - lean, clean, and secure, all controlled within your browser
|
|
|
|
---
|
|
|
|
## 📦 Installation
|
|
|
|
On a fresh Debian 12 VM, as `root`:
|
|
|
|
```bash
|
|
./install-docker-appliance.sh
|
|
```
|
|
|
|
The script installs:
|
|
- Docker Engine
|
|
- Docker Compose
|
|
- Portainer (listens on port `9000`)
|
|
- NGINX with a reverse proxy for `docker.local`
|
|
- Certbot (installed but not auto-run)
|
|
|
|
---
|
|
|
|
## 🔑 Access Portainer
|
|
|
|
Once installed:
|
|
|
|
- Go to `http://<your-server-ip>:9000`
|
|
Or, if using local DNS: `http://docker.local`
|
|
|
|
Portainer will prompt you to create an **admin user** on first launch.
|
|
|
|
---
|
|
|
|
## 🔒 Optional: Enable HTTPS
|
|
|
|
To secure your web UI with HTTPS:
|
|
|
|
1. Point a domain (e.g., `docker.yourdomain.com`) to your server's IP.
|
|
2. Run as `root`:
|
|
|
|
```bash
|
|
certbot --nginx
|
|
```
|
|
|
|
Certbot will configure your reverse proxy with a free Let's Encrypt certificate.
|
|
|
|
---
|
|
|
|
## 🛠 System Requirements
|
|
|
|
- Debian 12 (bare metal or VM)
|
|
- Internet access to fetch Docker and Certbot
|
|
- Local DNS or `/etc/hosts` entry for `docker.local` (if not using a real domain)
|
|
|
|
---
|
|
|
|
## ⚠️ Security Notes
|
|
|
|
- Portainer users are **managed inside Portainer** - not tied to Linux system accounts.
|
|
- It is recommended to firewall access or restrict to a private network.
|
|
- Consider enabling HTTPS or using VPN if deploying on a public IP.
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
Apache License 2.0
|
|
See [LICENSE](./LICENSE) for details.
|
|
|
|
---
|
|
|
|
## © Copyright
|
|
|
|
© Robbie Ferguson
|
|
https://baldnerd.com
|
|
All rights reserved. |