- FastAPI backend with REST API endpoints - SQLite database for container metadata - Docker/Podman SDK integration with label filtering - Frontend: Server creation form and management page - Container operations: create, list, start, stop, delete - Single container deployment (nginx + Python + supervisor) - Support for Docker and Podman (rootless) - Volume management for persistent data
57 lines
1.6 KiB
Markdown
57 lines
1.6 KiB
Markdown
# Stronghold
|
|
|
|
A web ui to manage minecraft server using the itzg docker container
|
|
https://github.com/itzg/docker-minecraft-server
|
|
|
|
Also manage proxy servers like velocity, bungeecord
|
|
|
|
## Development
|
|
See design.md for design notes
|
|
|
|
## Quick Start (Proof of Concept)
|
|
|
|
Stronghold is a web UI for managing Minecraft servers using Docker/Podman containers.
|
|
|
|
### Running the POC
|
|
|
|
**Using Docker Compose (Docker users)**
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
**Using Podman Compose (Podman users)**
|
|
```bash
|
|
podman-compose up -d --build
|
|
```
|
|
|
|
**Note**: The container needs access to your Docker/Podman socket to manage containers. The compose file mounts:
|
|
- `/var/run/docker.sock` (Docker)
|
|
- `/run/podman/podman.sock` (Podman)
|
|
|
|
Then open http://localhost:8080 in your browser.
|
|
|
|
### Features
|
|
|
|
**Current POC Features:**
|
|
- ✅ Generate docker-compose.yml files
|
|
- ✅ Create Minecraft server containers directly
|
|
- ✅ List and manage containers
|
|
- ✅ Start/Stop/Delete containers
|
|
- ✅ Support for Docker and Podman
|
|
- ✅ SQLite database for container metadata
|
|
- ✅ Multiple server types (Vanilla, Paper, Forge, Fabric, etc.)
|
|
- ✅ Modpack support (CurseForge, Modrinth, URL, Local)
|
|
- ✅ Advanced configuration options
|
|
|
|
**Pages:**
|
|
- `/` (index.html) - Create new servers
|
|
- `/manage.html` - Manage existing servers
|
|
|
|
### Architecture
|
|
|
|
- **Frontend**: Static HTML/CSS/JavaScript
|
|
- **Backend**: Python FastAPI
|
|
- **Database**: SQLite (stored in `./data/stronghold.db`)
|
|
- **Container Engine**: Docker SDK (works with both Docker and Podman)
|
|
|
|
All containers created by Stronghold are labeled with `stronghold.managed=true` to isolate them from other containers.
|