Blazor Server application for managing Factorio save files
1.2K
Madtorio is a Blazor Server web application (.NET 10) for managing Factorio game save files. It provides user authentication with admin roles, a file management system for uploading, storing, and downloading save files, and an admin-editable rules system.
# Clone the repository
git clone https://github.com/helpower2/Madtorio.git
cd Madtorio
# Create environment file
cp .env.template .env
# Edit .env with your preferred admin credentials
# Start with Docker Compose
docker compose up -d
# Access the application
open http://localhost:8083
Default admin credentials (change in .env):
[email protected]Madtorio2026!# Prerequisites: .NET 10 SDK
# Restore dependencies
dotnet restore
# Run the application
dotnet run
# Or with hot reload
dotnet watch
# Access the application
open http://localhost:5000
This project uses GitHub Actions for continuous integration and deployment:
Feature Branch CI (ci-feature.yml): Runs on all branches except main
Main Branch CD (cd-main.yml): Runs on main branch and version tags
latest, stable, v1.0.0, etc.PR Checks (pr-checks.yml): Runs on pull requests
Images are pushed to Docker Hub: helpower2/madtorio
On Unraid (auto-updates daily at 01:00):
cd /mnt/user/appAppData/madtorio
docker compose pull
docker compose up -d
Manual deployment:
docker pull helpower2/madtorio:latest
docker compose up -d --force-recreate
# Tag the current commit
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
# GitHub Actions will:
# - Build and push Docker images with version tags
# - Create a GitHub release with changelog
# - Tag Docker images: v1.0.0, v1.0, v1, latest, stable
Madtorio/
├── Components/ # Razor components
│ ├── Pages/ # Page components (routes)
│ ├── Layout/ # Layout components
│ └── Account/ # Authentication components
├── Data/ # Database layer
│ ├── Models/ # Entity models
│ ├── Migrations/ # EF Core migrations
│ └── Seed/ # Database seeding
├── Services/ # Business logic services
├── Madtorio.Tests/ # Test project
└── .github/ # CI/CD workflows
AppData/madtorio.db)# Run all tests
dotnet test
# Run with coverage
dotnet test --collect:"XPlat Code Coverage"
# Add a new migration
dotnet ef migrations add MigrationName --output-dir Data/Migrations
# Apply migrations
dotnet ef database update
# Revert last migration
dotnet ef migrations remove
ASPNETCORE_ENVIRONMENT: Application environment (Development/Production)AdminEmail: Default admin email addressAdminPassword: Default admin password (min 8 chars, requires uppercase, lowercase, digit, special char)ConnectionStrings__DefaultConnection: SQLite database connection stringConfiguration files by environment:
appsettings.json: Base configurationappsettings.Development.json: Development overridesappsettings.Production.json: Production overrides# Build image
docker build -t madtorio:local .
# Run container
docker run -d \
-p 8083:8080 \
-v $(pwd)/data:/app/data \
-e [email protected] \
-e AdminPassword=YourSecurePassword123! \
madtorio:local
# Build for multiple architectures
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t helpower2/madtorio:latest \
--push .
See README.Docker.md for comprehensive Unraid installation instructions, including:
[Add your license here]
Comprehensive documentation is available in the docs/ directory:
Additional resources:
For issues and questions:
See Releases for changelog and version history.
Content type
Image
Digest
sha256:3bdad074b…
Size
110.1 MB
Last updated
6 months ago
docker pull helpower2/madtorio