OneCamp Setup Doc
Required DNS Subdomains for OneCamp
Please add the following subdomains to your DNS records. They should usually be A records pointing to your server IP (A record), depending on your infrastructure.
Subdomain List
- traefik.yourdomain.com
- onecamp-dgraph-alpha.yourdomain.com
- onecamp-dgraph.yourdomain.com
- onecamp-ch.yourdomain.com
- onecamp-emqx.yourdomain.com
- onecamp-emqx-console.yourdomain.com
- onecamp-collab.yourdomain.com
- onecamp-postgres.yourdomain.com
- onecamp-minio.yourdomain.com
- onecamp-minio-console.yourdomain.com
- onecamp-redis.yourdomain.com
- onecamp-os.yourdomain.com
- onecamp-backend.yourdomain.com
- onecamp-livekit.yourdomain.com
Quick copy-paste (without domain suffix)
traefik onecamp-dgraph-alpha onecamp-dgraph onecamp-ch onecamp-emqx onecamp-emqx-console onecamp-collab onecamp-postgres onecamp-minio onecamp-minio-console onecamp-redis onecamp-os onecamp-backend onecamp-livekit
Service Reference (optional – for your team)
| Subdomain | Purpose / Service |
|---|---|
| traefik | Traefik dashboard & API (protected) |
| onecamp-dgraph-alpha | Dgraph Alpha (internal) |
| onecamp-dgraph | Dgraph main endpoint |
| onecamp-ch | ClickHouse |
| onecamp-emqx | EMQX MQTT broker |
| onecamp-emqx-console | EMQX Dashboard |
| onecamp-collab | Collaboration service |
| onecamp-postgres | PostgreSQL |
| onecamp-minio | MinIO object storage |
| onecamp-minio-console | MinIO Console |
| onecamp-redis | Redis |
| onecamp-os | OpenSearch / Elasticsearch |
| onecamp-backend | Main application backend API |
| onecamp-livekit | LiveKit (WebRTC video & audio) |
Run these commands in sequence
- cp ./.sample.env ./.env
- cp ./sample-compose.yml ./compose.yml
- make update-admin-email EMAIL=your-email
- make update-server-ip
- make replace-domain DOMAIN=your-domain
- make create-traefik-password PASSWORD=secret
- make update-traefik-email EMAIL=your-email
- make update-allowed-domains DOMAINS=your-domain
- make create-swap
- make build_restart_all
- make create_postgres_db
- echo "127.0.0.1 onecamp-postgres.your-domain.com" | sudo tee -a /etc/hosts
- ln -s /root/.cargo/bin/sqlx /usr/local/bin/sqlx
- make migrate_up
Front end changes
.env.production (replace your-domain.com)
NEXT_PUBLIC_BACKEND_URL=https://onecamp-backend.your-domain.com/
NEXT_PUBLIC_FRONTEND_URL=https://onecamp.your-domain.com/
NEXT_PUBLIC_APP_URL=https://onecamp.your-domain.com/
NEXT_PUBLIC_ORG_NAME=one camp
NEXT_PUBLIC_LIVEKIT_URL=https://onecamp-livekit.your-domain.com
NEXT_PUBLIC_COLLABORATION_URL=wss://onecamp-collab.your-domain.com
NEXT_PUBLIC_MQTT_HOST=onecamp-emqx.your-domain.com
# Firebase Configuration
NEXT_PUBLIC_FIREBASE_API_KEY="AIzaSysdTs-_laEM_a8sdsdnuE"
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="onemasdsd.firebaseapp.com"
NEXT_PUBLIC_FIREBASE_PROJECT_ID="onemana-dsd"
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET="onemsds-dsd.appspot.com"
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID="751dsddsdsd343"
NEXT_PUBLIC_FIREBASE_APP_ID="1:75ddsds68243:web:da94e3eb699c7255f74b46"
NEXT_PUBLIC_FIREBASE_VAPID_KEY="BPLSq2dsd25_6MdNV9y5_CtFsdsddsN6KmPciWd3PLewcauuO3B40Fxl0DYcycoqxAgwdssvq1CIiM27c"
next.config.ts (replace yourdoamin.com)
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
/* config options here */
reactStrictMode: false,
images: {
// unoptimized: true,
dangerouslyAllowLocalIP: true,
remotePatterns: [
{
protocol: 'http',
hostname: 'localhost',
port: '9000',
},
{
protocol: 'https',
hostname: 'onecamp-minio.yourdomain.com',
},
{
protocol: 'http',
hostname: 'onecamp-minio.yourdomain',
}
],
},
};
export default nextConfig;
Debug livekit
sometimes depending on server provider you might need to allow udp port
sudo ufw allow 50000:60000/udp && sudo ufw allow 7881/tcp && sudo ufw allow 7880/tcp