Installation
July 16, 2026 ยท View on GitHub
DigitalPlat Domain OSS requires Python 3.11 or later. SQLite is the default database and is suitable for a small installation. MySQL is recommended when the database must be managed separately or when multiple application processes share it.
Local installation
git clone https://github.com/DigitalPlatDev/Domain-OSS.git
cd Domain-OSS
./panel install
./panel start
Open http://127.0.0.1:8080/setup/. Create the first administrator, choose the default per-user domain limit, and decide whether public registration is allowed.

./panel install creates .venv, installs the application, and applies database migrations. The default SQLite database and persistent encryption secret are stored in instance/.
Docker installation
cp .env.example .env
python3 -c 'import secrets; print(secrets.token_urlsafe(48))'
Put the generated value in .env as SECRET_KEY, then start the services:
docker compose up -d --build
docker compose ps
The published address is 127.0.0.1:8080. The Compose project starts the panel and a DNS job worker. Data is stored in the domain_oss_data volume.
MySQL with Docker
Set strong values for MYSQL_PASSWORD and MYSQL_ROOT_PASSWORD in .env, then run:
docker compose -f docker-compose.yml -f docker-compose.mysql.yml up -d --build
The MySQL override supplies DATABASE_URL to both the panel and worker. The database is not published to the host.
Existing MySQL server
Create an empty UTF-8 database and a dedicated user, then set:
DATABASE_URL=mysql+pymysql://domainoss:password@database.example.org/domainoss
Apply migrations before starting the service:
./panel upgrade
./panel doctor
Reverse proxy
Keep the application on a private address and terminate HTTPS at Caddy, nginx, Apache, or another trusted proxy. Set PUBLIC_ORIGIN to the external URL and COOKIE_SECURE=1. Forward the original host and scheme headers. Limit the request body to 1 MiB or less.
First DNS provider
After signing in, open Administration โ DNS providers:

- Add BIND, PowerDNS, or Cloudflare credentials.
- Use Test to verify connectivity.
- Add a managed parent zone.
- Open the zone policy and review registration, labels, record types, DNSSEC, and secondary server settings.
- Register a test domain and publish a DNS record before onboarding users.