Repository Setup
Connect your source code and detect runtime settings automatically.
When you click New Service, the form is split into focused sections. Complete them from top to bottom, then review the monthly estimate and deploy.
Project and host
Project Name is the label shown on the Dashboard. Host Name becomes your public subdomain, for example flask-test.mhserver.dpdns.org. Host names must start with a letter and use only lowercase letters, numbers, and hyphens.
Repository and branch
Paste a GitHub repository URL and choose the branch to deploy. If the repository is private, the form shows a GitHub connect row. After connecting, Mapherix can fetch private branches and deploy using the connected token.
Public repositories can usually be analyzed and deployed from the URL alone. Private repositories require GitHub OAuth so Mapherix can verify access, read branch and commit metadata, download the selected source snapshot, and show deployment history.
Private repository checklist
- Click Connect when the GitHub prompt appears.
- Authorize access to the account or organization that owns the repository.
- Return to Mapherix and fetch branches again if the branch list was empty before connecting.
- Reconnect GitHub if private commit history, branches, or redeploy actions stop loading.
Runtime and commands
Choose the runtime that matches the app. The Build Command prepares dependencies or production assets. The Start Command launches the server process. The Port must match the port your app listens on.
Node.js (Express, React, Next.js)
# Build Command
npm install && npm run build
# Start Command
npm start
# Express apps should listen on:
0.0.0.0:$PORT or 0.0.0.0:3000Python (FastAPI, Flask)
# Build Command
pip install -r requirements.txt
# Start Command
python app.py
# FastAPI example start command
uvicorn main:app --host 0.0.0.0 --port 8000Database configuration
Database support is optional. The default database setting is None, which is best for APIs, bots, static dashboards, or services that use an external database provider. Enable database provisioning only when your app needs MongoDB, PostgreSQL, or MySQL.
After enabling a database, choose the database type and confirm its port. PostgreSQL and MySQL also support database username, password, database name, and permission fields. The default permission is admin so the application can create and manage the tables it needs during first deployment.
- None: No database is provisioned or attached.
- MongoDB: Use for document data and Mongo connection strings.
- PostgreSQL: Use for relational data; provide user, password, database name, and port.
- MySQL: Use for relational data; provide user, password, database name, and port.
# Common database environment variable examples
DATABASE_URL=postgresql://admin:password@host:5432/app_database
MYSQL_URL=mysql://admin:password@host:3306/app_database
MONGODB_URI=mongodb://host:27017/app_databasePersistent directory
Enable persistent directory backup when your app writes files that should survive redeploys, such as uploads or data/files. Enter a relative folder path inside your project.
Encrypted secrets
Add environment variables manually or upload a .env file. Blank secret rows are not shown by default; click Add Variable when you need to add one.