Skip to content

CodeLifter-Platform/StageZero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StageZero

A Dynamic DNS tool that updates changes to DNS services

A Blazor Server application for managing dynamic DNS updates. Keep your domains pointed at the right IP addresses, automatically.

Tech Stack

  • .NET 10.0 / Blazor Server (InteractiveServer mode)
  • MudBlazor UI Framework
  • SQLite with Entity Framework Core
  • Basic Username/Password Authentication
  • Serilog for Structured Logging

Getting Started

Prerequisites

  • .NET 10.0 SDK
  • Docker & Docker Compose (for containerized development)

Local Development

  1. Copy environment file:

    cp .env.example .env
  2. Run the application:

    cd StageZero
    dotnet run
  3. Access the app: https://localhost:5001

Docker Development

  1. Copy environment file:

    cp .env.example .env
  2. Start everything:

    docker-compose -f debug.docker-compose.yml up
  3. Access the app: http://localhost:5000

Project Structure

StageZero/
├── StageZero/
│   ├── Application/           # UI Layer
│   │   ├── Areas/            # Feature areas (Home, etc.)
│   │   ├── Components/       # Shared components
│   │   └── Layout/           # MainLayout, AppVM
│   ├── Data/                 # DbContext
│   ├── DataAdapters/         # Data access (Readers/Writers)
│   ├── Models/               # Domain entities
│   ├── Services/             # Business logic (Auth, etc.)
│   └── wwwroot/              # Static assets
├── debug.docker-compose.yml
├── .env.example
└── StageZero.sln

Architecture

This project follows MVVM architecture:

  • Views (Razor components) - Zero logic, bind to ViewModels
  • ViewModels - UI state translation only
  • Services - All business logic
  • DataAdapters - Focused data access (Reader/Writer pattern)

Configuration

Environment Variables

The application uses a .env file for configuration. Copy .env.example to .env and configure as needed:

cp .env.example .env

Email Configuration (Optional):

To enable email verification for new user setup, configure SMTP settings in .env:

# Uncomment and configure these to enable email sending:
Email__SmtpHost=smtp.gmail.com
Email__SmtpPort=587
Email__SmtpUsername=your-email@gmail.com
Email__SmtpPassword=your-app-password
Email__FromEmail=your-email@gmail.com
Email__FromName=StageZero

Gmail Setup:

  1. Enable 2-factor authentication on your Google account
  2. Generate an App Password: https://myaccount.google.com/apppasswords
  3. Use the App Password (not your regular password) in Email__SmtpPassword

Note: If SMTP is not configured, verification codes will be logged to the console during development.

DNS Provider Control

Each DNS provider (Cloudflare, etc.) can be individually enabled or disabled for updates:

  • When adding a provider: Toggle "Enable DNS Updates" in the add provider dialog
  • After adding: Use the toggle switch in the provider card header to enable/disable updates

When a provider is disabled:

  • ✅ IP monitoring continues normally
  • ✅ DNS records are still visible in the UI
  • ❌ NO automatic DNS updates will be made for that provider

This is useful for:

  • Testing without affecting production DNS
  • Temporarily pausing updates for specific providers
  • Development without valid DNS credentials

VS Code Debugging

The project includes VS Code launch configuration with .env file support. To debug:

  1. Open the project in VS Code
  2. Press F5 or use the "Run and Debug" panel
  3. Select ".NET Core Launch (web)"

The .env file will be automatically loaded when debugging.

Layout

  • Dense header (no drawers)
  • 80% body width, centered
  • Scrollable content

Database

SQLite is used for data storage. The database file is created automatically at StageZero.db.

License

MIT © CodeLifter LLC

About

Your Pre-Cloud Cloud Environment

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors