Proof of concept: Container management with FastAPI backend
- 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
This commit is contained in:
commit
c31e48e2b1
25 changed files with 3382 additions and 0 deletions
57
README.md
Normal file
57
README.md
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue