Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

NotificationsYou must be signed in to change notification settings

saashqdev/dflow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dflow is a self-hosted platform for deploying and managing applications, similarto Vercel, Railway, or Heroku. dFlow provides automated deployment workflows,container orchestration, and infrastructure management capabilities while givingyou full control over your infrastructure and data.

🚀 Self-Hosting dFlow with Docker Compose

This guide walks you through setting up and running your own self-hostedinstance of dFlow, a powerful workflow management platform, using Docker Composeand Tailscale.

✅ Prerequisites

  • Docker
  • Docker Compose
  • A Tailscale account

🧭 Setup Instructions

1. Clone the repository

git clone https://github.com/akhil-naidu/dflow/cd dflow

2. Tailscale Setup

  1. Login totailscale and go to the Admin Console.
  2. Update Access controls
    {  "tagOwners": {    "tag:customer-machine": ["autogroup:admin"],    "tag:dflow-proxy":      ["autogroup:admin"],    "tag:dflow-support":    ["autogroup:admin"],  },  "grants": [    {      "src": ["autogroup:admin"],      "dst": ["tag:customer-machine"],      "ip":  ["*"],    },    {      "src": ["tag:dflow-proxy"],      "dst": ["tag:customer-machine"],      "ip":  ["*"],    },    {      "src": ["tag:dflow-support"],      "dst": ["tag:customer-machine"],      "ip":  ["*"],    },  ],  "ssh": [    {      "action": "accept",      "src":    ["autogroup:admin", "tag:dflow-support"],      "dst":    ["tag:customer-machine"],      "users":  ["autogroup:admin", "root"],    },  ],}
  3. Create Keys
    1. Go to settings.
    2. Navigate to Personal Settings > Keys
      1. Generate auth key
    3. Navigate to Tailnet Settings > OAuth clients
      1. Generate OAuth client with all read permissions and write permissionfor auth keys.

3. DNS Configuration

Setup DNS records with your provider:

  Type: A,  Name: *.subdomain  Value: <your-server-ip>  Proxy: OFF

4. Configure Environment Variables

  • Create .env file & add the requried variables.

    # mongodbMONGO_INITDB_ROOT_USERNAME=adminMONGO_INITDB_ROOT_PASSWORD=passwordMONGO_DB_NAME=dFlow# config-generatorWILD_CARD_DOMAIN=up.example.comJWT_TOKEN=your-jwt-tokenPROXY_PORT=9999# dFlow appNEXT_PUBLIC_WEBSITE_URL=dflow.up.example.comDATABASE_URI=mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/${MONGO_DB_NAME}?authSource=adminPAYLOAD_SECRET=your-secretNEXT_PUBLIC_PROXY_DOMAIN_URL=https://dflow-traefik.up.example.comNEXT_PUBLIC_PROXY_CNAME=cname.up.example.com# tailscaleTAILSCALE_AUTH_KEY=tskey-auth-xxxxTAILSCALE_OAUTH_CLIENT_SECRET=tskey-client-xxxxTAILSCALE_TAILNET=your-tailnet-name# Better stack - For telemetryNEXT_PUBLIC_BETTER_STACK_SOURCE_TOKEN=bstk-xxxNEXT_PUBLIC_BETTER_STACK_INGESTING_URL=https://logs.betterstack.com# resend - For email configurationsRESEND_API_KEY=re_12345RESEND_SENDER_EMAIL=no-reply@up.example.comRESEND_SENDER_NAME=dFlow System

5. Build the Docker image

source .envdocker build \  --build-arg NEXT_PUBLIC_WEBSITE_URL=$NEXT_PUBLIC_WEBSITE_URL \  --build-arg DATABASE_URI=$DATABASE_URI \  --build-arg REDIS_URI=$REDIS_URI \  --build-arg PAYLOAD_SECRET=$PAYLOAD_SECRET \  --build-arg TAILSCALE_AUTH_KEY=$TAILSCALE_AUTH_KEY \  --build-arg TAILSCALE_OAUTH_CLIENT_SECRET=$TAILSCALE_OAUTH_CLIENT_SECRET \  --build-arg TAILSCALE_TAILNET=$TAILSCALE_TAILNET \  --build-arg NEXT_PUBLIC_PROXY_DOMAIN_URL=$NEXT_PUBLIC_PROXY_DOMAIN_URL \  --build-arg NEXT_PUBLIC_PROXY_CNAME=$NEXT_PUBLIC_PROXY_CNAME \  --build-arg NEXT_PUBLIC_BETTER_STACK_SOURCE_TOKEN=$NEXT_PUBLIC_BETTER_STACK_SOURCE_TOKEN \  --build-arg NEXT_PUBLIC_BETTER_STACK_INGESTING_URL=$NEXT_PUBLIC_BETTER_STACK_INGESTING_URL \  --build-arg RESEND_API_KEY=$RESEND_API_KEY \  --build-arg RESEND_SENDER_EMAIL=$RESEND_SENDER_EMAIL \  --build-arg RESEND_SENDER_NAME=$RESEND_SENDER_NAME \  -t dflow .

6. Traefik Setup

  1. Createtraefik.yaml file at the root directory.

  2. Change the email

    entryPoints:  web:    address: ":80"  websecure:    address: ":443"providers:  file:    directory: /etc/traefik/dynamic    watch: truecertificatesResolvers:  letsencrypt:    acme:      email: johndoe@example.com      storage: /etc/traefik/acme.json      httpChallenge:        entryPoint: web  # Used for app-specific domainsapi:  dashboard: false  insecure: false  # ⚠️ Secure this in productionlog:  level: INFO
  3. Create and secureacme.json:

    touch acme.jsonchmod 600 acme.json

7. Start the Docker Compose Stack

docker compose --env-file .env up -d

8. Final Configuration

Make aPOST request to complete initial setup:

http://<YOUR_SERVER_IP>:9999/configuration

🤝 Contributors

About

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript99.4%
  • Other0.6%

[8]ページ先頭

©2009-2025 Movatter.jp