From f5e6fe94aad2bd403d1cbe30025f31d763f688fd Mon Sep 17 00:00:00 2001 From: kinhdev24 Date: Tue, 27 Jan 2026 08:44:59 +0700 Subject: [PATCH 1/2] feat: Separated the docs to two parts quickstart, advanced setup --- public/screenshots/bucket-guide.png | Bin 0 -> 55834 bytes public/screenshots/iam-credentials.png | Bin 0 -> 76352 bytes src/app/_components/GettingStartedCards.jsx | 12 +- src/app/blog/v2025.12.19/page.mdx | 2 +- src/content/getting-started/index.mdx | 4 +- .../self-hosting/docker/_meta.js | 4 + .../{docker.mdx => docker/advanced-setup.mdx} | 347 ++++++++++-------- .../self-hosting/docker/index.mdx | 48 +++ .../self-hosting/docker/quick-start.mdx | 113 ++++++ 9 files changed, 374 insertions(+), 156 deletions(-) create mode 100644 public/screenshots/bucket-guide.png create mode 100644 public/screenshots/iam-credentials.png create mode 100644 src/content/getting-started/self-hosting/docker/_meta.js rename src/content/getting-started/self-hosting/{docker.mdx => docker/advanced-setup.mdx} (78%) create mode 100644 src/content/getting-started/self-hosting/docker/index.mdx create mode 100644 src/content/getting-started/self-hosting/docker/quick-start.mdx diff --git a/public/screenshots/bucket-guide.png b/public/screenshots/bucket-guide.png new file mode 100644 index 0000000000000000000000000000000000000000..2dcfa578582710fca594271a2fb11353d1b060f3 GIT binary patch literal 55834 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 Jr9z**{|~_KGp_&u literal 0 HcmV?d00001 diff --git a/public/screenshots/iam-credentials.png b/public/screenshots/iam-credentials.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4e85cec8830c824a21528098d2a2ca833a98dc GIT binary patch literal 76352 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%0Au9)0L&z> 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�J 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 ), }, -]; +] export function GettingStartedCards() { return (
- {cards.map(card => ( + {cards.map((card) => (
{card.title} @@ -221,5 +221,5 @@ export function GettingStartedCards() { } `}
- ); + ) } diff --git a/src/app/blog/v2025.12.19/page.mdx b/src/app/blog/v2025.12.19/page.mdx index b3daab4..4136fbd 100644 --- a/src/app/blog/v2025.12.19/page.mdx +++ b/src/app/blog/v2025.12.19/page.mdx @@ -52,7 +52,7 @@ The platform is built with a microservices architecture: To get started with SpaceDF: 1. Visit our [Getting Started guide](/getting-started) -2. Set up your [Cloud deployment](/getting-started/cloud-setup) or [Self-hosted installation](/getting-started/self-hosted) +2. Set up your [Cloud deployment](/getting-started/cloud-setup) or [Self-hosted installation](/getting-started/self-hosting) 3. Follow the [Onboarding guide](/onboarding) ## Support diff --git a/src/content/getting-started/index.mdx b/src/content/getting-started/index.mdx index 496ebd8..4b29a07 100644 --- a/src/content/getting-started/index.mdx +++ b/src/content/getting-started/index.mdx @@ -3,7 +3,7 @@ asIndexPage: true sidebarTitle: Installation --- -import {Cards, Callout} from "nextra/components"; +import { Cards, Callout } from "nextra/components"; # Getting Started with SpaceDF @@ -41,7 +41,7 @@ Ready to dive in? The getting started guides take you step-by-step through Space /> } title="Self-Hosted Installation" - href="/docs/getting-started/self-hosted" + href="/docs/getting-started/self-hosting" /> diff --git a/src/content/getting-started/self-hosting/docker/_meta.js b/src/content/getting-started/self-hosting/docker/_meta.js new file mode 100644 index 0000000..57dff1e --- /dev/null +++ b/src/content/getting-started/self-hosting/docker/_meta.js @@ -0,0 +1,4 @@ +export default { + "quick-start": "Quick Start", + "advanced-setup": "Advanced Setup", +} diff --git a/src/content/getting-started/self-hosting/docker.mdx b/src/content/getting-started/self-hosting/docker/advanced-setup.mdx similarity index 78% rename from src/content/getting-started/self-hosting/docker.mdx rename to src/content/getting-started/self-hosting/docker/advanced-setup.mdx index 3917fd6..3ef333d 100644 --- a/src/content/getting-started/self-hosting/docker.mdx +++ b/src/content/getting-started/self-hosting/docker/advanced-setup.mdx @@ -8,32 +8,40 @@ import { } from "@/app/_components/NumberOfContent.jsx" -# Self-Hosting with Docker +# Advanced Setup with Docker -> Learn how to configure and deploy SpaceDF Platform with Docker. +> This guide covers **detailed configuration**, **customization**, **and operational topics** for running SpaceDF with Docker Compose. ---- +
+

Use this guide if you need:

+
    + - Production-ready configuration + - Security hardening + - Custom ports, domains, or authentication + - Update, maintenance, and removal procedures +
+
+If you only want to get SpaceDF running quickly with default settings, see [Quick Start](/docs/getting-started/self-hosting/docker/quick-start). -Docker is the easiest way to start self-hosting SpaceDF. -You can usually get everything running in under 30 minutes. +--- ## Contents
- - - - - - - - + + + + + + + + -## Before you begin +## Prerequisites Before setting up SpaceDF, you should be familiar with some basic concepts. You do not need to be an expert, but you should understand: -- Basic Linux server usage (connecting to a server, running commands) -- How Docker and Docker Compose work at a high level -- Basic networking concepts such as ports and firewalls +- [Basic Linux](https://www.digitalocean.com/community/tutorials/linux-commands) server usage (connecting to a server, running commands). +- How Docker and Docker Compose work at a high level. +- Basic networking concepts such as [ports](https://www.cloudflare.com/learning/network-layer/what-is-a-computer-port) and [firewalls](https://www.cloudflare.com/learning/security/what-is-a-firewall/) Make sure the following tools are installed on your machine or server: - [Git](https://git-scm.com/downloads) – used to download the SpaceDF source code @@ -94,25 +102,19 @@ Minimum requirements for running all SpaceDF Platform components, suitable for d Follow the steps below to install and run SpaceDF on your machine. ```bash copy -# Get the code -git clone https://github.com/Space-DF/spacedf-core.git # Make your new spacedf project directory mkdir spacedf-project -# Tree should look like this -# . -# ├── spacedf-core -# └── spacedf-project - -# Copy the compose files over to your project -cp -rf spacedf-core/docker-compose.yml spacedf-project - -# Copy the fake env vars -cp spacedf-core/.env.example spacedf-project/.env +# Get the code +cd spacedf-project +git clone https://github.com/Space-DF/spacedf-core.git # Switch to your project directory -cd spacedf-project +cd spacedf-core + +# Copy the env vars +cp .env.example .env # Pull the latest images docker compose pull @@ -127,17 +129,6 @@ You must replace these values before starting SpaceDF in a self-hosted environme Review the configuration options below and make sure all secret values are set before starting SpaceDF. -### Quick setup (experimental) -To generate and apply all secrets at once you can run: - -```sh copy -sh ./utils/generate-keys.sh -``` - -The script is experimental, so review the output before proceeding and also check `.env` after it's updated by the script. - -Alternatively, configure all secrets manually as follows. - ### Configuring Environment Variables This section explains how to configure the required environment variables in the `.env` file before starting SpaceDF. @@ -149,18 +140,24 @@ These environment variables configure the backend services that power the self-h Backend services include APIs, messaging, databases, and integrations required to run the core system. ##### RabbitMQ credentials -> RabbitMQ is used by SpaceDF to handle background tasks and message processing. +> RabbitMQ is used by SpaceDF for **background tasks** and **internal message** processing between services. + +You can **choose any username and password you want**, as long as: +- The same values are used by **RabbitMQ** and **all SpaceDF services** +- The credentials are defined in the environment variables below ```bash copy -RABBITMQ_DEFAULT_USER=default -RABBITMQ_DEFAULT_PASS=password +# Replace with your own values. +RABBITMQ_DEFAULT_USER=your_username +RABBITMQ_DEFAULT_PASS=your_password ``` - `RABBITMQ_DEFAULT_USER` - The username SpaceDF uses to connect to RabbitMQ. - `RABBITMQ_DEFAULT_PASS` - The password for the RabbitMQ user above. - Do not use simple or common passwords. This account controls access to your message queue. + Do not use simple or common passwords. This account controls access to your message queue.
+ Keep these credentials safe—you may need them to log in to RabbitMQ for troubleshooting later.
##### Authentication (JWT) @@ -198,16 +195,6 @@ JWT_PUBLIC_KEY=-----BEGIN PUBLIC KEY-----... > Google OAuth allows users to sign in to SpaceDF using their Google account. To enable Google login, you need to create OAuth credentials in the ***Google Cloud Console*** and set the values below in your `.env` file. -```bash copy -# Replace with your own values. -GOOGLE_CALLBACK_URL=https://spacedf.example.com/auth/google/callback -GOOGLE_CLIENT_ID=1234567890-abcxyz.apps.googleusercontent.com -GOOGLE_CLIENT_SECRET=your_google_client_secret -``` -- `GOOGLE_CALLBACK_URL` - The URL Google redirects users back to after successful login. -- `GOOGLE_CLIENT_ID` - Identifies your application to Google. -- `GOOGLE_CLIENT_SECRET` - A private key used by SpaceDF to securely communicate with Google (***Keep this value secret.***) - **How to get Google OAuth credentials** @@ -223,23 +210,34 @@ GOOGLE_CLIENT_SECRET=your_google_client_secret Go to **APIs & Services → Credentials**. - Create an **OAuth 2.0 Client ID:** -
    -
  • - Application type: **Web application** -
  • -
  • - Authorized redirect URI: - ```string copy - https://your-domain.com/auth/google/callback - ``` -
  • -
+ Create an **OAuth 2.0 Client ID:**
+ Application type: **Web application**
+
+ + Authorized redirect URI: (`GOOGLE_CALLBACK_URL`)
+ This is the callback URL that Google redirects to after a user successfully signs in with Google. + ```bash copy + # Production + https://your-domain.com/auth/google/callback + + # Development + http://localhost:3000/auth/google/callback + ```
- + Copy the generated **Client ID** and **Client Secret** into your `.env` file. +```bash copy +# Replace with your own values. +GOOGLE_CALLBACK_URL=https://spacedf.example.com/auth/google/callback +GOOGLE_CLIENT_ID=1234567890-abcxyz.apps.googleusercontent.com #(Step 5) +GOOGLE_CLIENT_SECRET=your_google_client_secret #(Step 5) +``` +- `GOOGLE_CALLBACK_URL` - The URL Google redirects users back to after successful login. +- `GOOGLE_CLIENT_ID` - Identifies your application to Google. +- `GOOGLE_CLIENT_SECRET` - A private key used by SpaceDF to securely communicate with Google (***Keep this value secret.***) + **Security notes** - Do not commit `GOOGLE_CLIENT_SECRET` to Git @@ -305,44 +303,71 @@ DEFAULT_TENANT_HOST=app.spacedf.example ##### S3 Service -> The S3 Service is used by SpaceDF to store files such as uploads, assets, and generated data. This setup commonly uses **Amazon S3** or any **S3-compatible storage**. +> The Amazon S3 service is used by SpaceDF to store files such as uploads, assets, and generated data. + + + SpaceDF supports **Amazon S3 only** for file storage in this setup. + + +**How it works** + +SpaceDF connects to Amazon S3 using **IAM credentials** that you provide in the `.env` file. All file operations (upload, read, delete) are handled internally by SpaceDF services.
+End users do **not** need AWS accounts or credentials. **How to configure** +If you do not already have an AWS account, create one at, [see more](https://repost.aws/knowledge-center/create-and-activate-aws-account):
+https://signin.aws.amazon.com/signup?request_type=register + +After creating your account, sign in to the AWS Management Console to continue with the steps below. + +***Create an S3 bucket*** + - **Create an S3 bucket** -
    -
  • - Create a bucket in your AWS account -
  • -
  • - Note the **bucket name** and **region** -
  • -
+ Open the [Amazon S3 Console](https://console.aws.amazon.com/s3/)
- - **Create IAM credentials** -
    -
  • - Create an IAM user with access to the bucket -
  • -
  • - Generate an **Access Key ID** and **Secret Access Key** -
  • -
+ Create a new bucket +
+ + Choose:
+ A unique bucket name -> will be used for `AWS_STORAGE_BUCKET_NAME`
+ An AWS region close to your server → will be used for `AWS_REGION` +
+Save the bucket name and region for later use. + +Read more: [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html#creating-bucket) + +***Create IAM credentials*** + + Open the [AWS IAM Console](https://console.aws.amazon.com/iam/) + + + Create a new **IAM user** + - Set values in `.env` - ```bash copy + Grant the user access to the S3 bucket
+ *Recommended:* grant only required S3 permissions (read/write) +
+ + Create an **Access Key** for the user
+ Access Key ID, Secret Access Key + +
+ +Read more: [AWS documentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) + +***Set values in `.env`*** +```bash copy # Replace with your own values. AWS_ACCESS_KEY_ID=AKIAXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXXXXX + AWS_STORAGE_BUCKET_NAME=spacedf-storage AWS_REGION=ap-southeast-1 - ``` -
+``` - `AWS_ACCESS_KEY_ID` - The access key used by SpaceDF to authenticate with S3. - `AWS_SECRET_ACCESS_KEY` - The secret key paired with the access key above. (***Keep this value private***) @@ -356,12 +381,6 @@ DEFAULT_TENANT_HOST=app.spacedf.example - Rotate access keys if they are exposed -**Using S3-compatible providers** - -If you are using an S3-compatible service (e.g., MinIO, DigitalOcean Spaces): -- Use the provider’s access key and secret -- Set the appropriate bucket name and region - ##### Redis > Redis is used by SpaceDF for caching and fast data access. @@ -446,28 +465,27 @@ DEVICE_SECRET_KEY=generated_secret_value ``` `DEVICE_SECRET_KEY` - A secret key used to sign and protect device-related data and requests. (***Keep this value private.***) -**Telemetry service URL** -Set this to the URL where the Telemetry Service is running. - -Example: Telemetry service running in Docker -```bash copy -# Replace with your own values. -TELEMETRY_SERVICE_URL=http://telemetry-service:8080 -``` - -Example: External telemetry service -```bash copy -# Replace with your own values. -TELEMETRY_SERVICE_URL=https://telemetry.spacedf.example -``` - **Security notes** - Do not commit passwords or secret keys to Git - - Use HTTPS for external telemetry services in production - Rotate secrets if they are exposed +**Telemetry service URL** + +Defines the internal Docker service address that SpaceDF uses to communicate with the Telemetry Service. + +When using the **default Docker setup**, the Telemetry Service runs as a Docker container and is accessible via its **service name**. + +```bash copy +# Default (recommended) +TELEMETRY_SERVICE_URL=http://telemetry-service:8080 +``` +- This value is the same for both **local and production** deployments when using Docker Compose. +- The Telemetry Service runs from a **Docker image** and is exposed internally. +- You **do not need to change this value** in most cases. + +Only change this value if you modify the Telemetry Service name or port in `docker-compose.yml`. ##### EMQX Service > EMQX is the MQTT broker used by SpaceDF to handle device messaging and real-time communication. @@ -508,7 +526,7 @@ MQTT_BROKER_BRIDGE_PASSWORD=change_this_to_a_secure_password Specify one or more topics, separated by commas. ```bash copy # Replace with your own values. -MQTT_TOPICS=devices/+/telemetry,devices/+/status +MQTT_TOPICS=device/+/telemetry,device/+/status ``` `MQTT_TOPICS` - A list of MQTT topics that SpaceDF subscribes to or bridges. @@ -525,26 +543,6 @@ MQTT_TOPICS=devices/+/telemetry,devices/+/status This setup commonly uses **AWS Simple Email Service (SES)**, but can be adapted to other SMTP-compatible providers. -Set the following values in your `.env` file. - -```bash copy -# Replace with your own values. -EMAIL_BACKEND=ses -EMAIL_HOST=email-smtp.us-east-1.amazonaws.com -EMAIL_PORT=587 -EMAIL_USE_TLS=true -EMAIL_HOST_USER=AKIAXXXXXXXX -EMAIL_HOST_PASSWORD=XXXXXXXXXXXXXXXX -DEFAULT_FROM_EMAIL=no-reply@spacedf.example -``` -- `EMAIL_BACKEND` - Specifies the email provider. Use `ses` when sending email through AWS SES. -- `EMAIL_HOST` - The SMTP endpoint provided by AWS SES (e.g. `email-smtp.us-east-1.amazonaws.com`). -- `EMAIL_PORT` - The SMTP port used to send email. Common values: `587` (TLS) or `465` (SSL). -- `EMAIL_USE_TLS` - Enables secure email delivery using TLS. Recommended value: `true`. -- `EMAIL_HOST_USER` - The SMTP username generated by AWS SES. -- `EMAIL_HOST_PASSWORD` - The SMTP password generated by AWS SES (***Keep this value secret***) -- `DEFAULT_FROM_EMAIL` - The sender email address shown to users. - **How to get AWS SES credentials** Sign in to the [AWS Console](https://aws.amazon.com/console/) @@ -578,6 +576,25 @@ DEFAULT_FROM_EMAIL=no-reply@spacedf.example Find your SMTP endpoint and set it as `EMAIL_HOST`. +Set the following values in your `.env` file. +```bash copy +# Replace with your own values. +EMAIL_BACKEND=ses +EMAIL_HOST=email-smtp.us-east-1.amazonaws.com +EMAIL_PORT=587 +EMAIL_USE_TLS=true +EMAIL_HOST_USER=AKIAXXXXXXXX +EMAIL_HOST_PASSWORD=XXXXXXXXXXXXXXXX +DEFAULT_FROM_EMAIL=no-reply@spacedf.example +``` +- `EMAIL_BACKEND` - Specifies the email provider. Use `ses` when sending email through AWS SES. +- `EMAIL_HOST` - The SMTP endpoint provided by AWS SES (e.g. `email-smtp.us-east-1.amazonaws.com`). +- `EMAIL_PORT` - The SMTP port used to send email. Common values: `587` (TLS) or `465` (SSL). +- `EMAIL_USE_TLS` - Enables secure email delivery using TLS. Recommended value: `true`. +- `EMAIL_HOST_USER` - The SMTP username generated by AWS SES. +- `EMAIL_HOST_PASSWORD` - The SMTP password generated by AWS SES (***Keep this value secret***) +- `DEFAULT_FROM_EMAIL` - The sender email address shown to users. + ##### MPA Service > The MPA Service connects SpaceDF to an MQTT broker to receive and publish messages for application-level processing. @@ -606,23 +623,29 @@ MQTT_TOPIC=devices/+/events ##### Bootstrap Service -> The Bootstrap Service is responsible for initial system setup and cross-service coordination when SpaceDF starts. +> The Bootstrap Service is the **backend service** responsible for initial system setup and cross-service coordination when SpaceDF starts. + +This service runs inside Docker as the SpaceDF backend. **Service host** -Set this to the URL where the Bootstrap Service is reachable. +This value defines the **base URL** where the Bootstrap (Backend) service is accessible. ```bash copy -# Replace with your own values. +# Local development (default) HOST=http://localhost:8000 ``` -For production, use your public domain: +For production deployments, set this to your **public API domain**: ```bash copy -# Replace with your own values. +# Replace with your public API domain. HOST=https://api.spacedf.example ``` `HOST` - The public base URL where the Bootstrap Service is accessible. This is used by other services to communicate with it. +If you change the backend port, make sure to update: +- HOST in your `.env` file +- The backend port in `docker-compose.yml` + **CORS origins** List all frontend origins that should be allowed to access the service. @@ -630,6 +653,7 @@ Separate multiple values with commas. Development (local) ```bash copy +# Local development (default) CORS_ALLOWED_ORIGINS=http://localhost,http://localhost:3000,http://localhost:3001 ``` @@ -903,13 +927,42 @@ This stops and removes the containers but keeps your data volumes intact. ## Accessing SpaceDF Services > After all services are running, you can access SpaceDF through the web interfaces and backend APIs using the URLs below. -| Service | Port | -| ---------------- | ----- | -| Dashboard | 3000 | -| Admin Portal | 3001 | -| Backend API | 8000 | -| EMQX (API) | 18083 | -| MQTT (WebSocket) | 8883 | +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Service + + Port +
Dashboardlocalhost:3000
Admin Portallocalhost:3001
Backend APIlocalhost:8000
EMQX (API)localhost:18083
MQTT (WebSocket)localhost:8883
+
**Notes** diff --git a/src/content/getting-started/self-hosting/docker/index.mdx b/src/content/getting-started/self-hosting/docker/index.mdx new file mode 100644 index 0000000..f6080bd --- /dev/null +++ b/src/content/getting-started/self-hosting/docker/index.mdx @@ -0,0 +1,48 @@ +--- +asIndexPage: true +sidebarTitle: Docker +--- + +import { RichCardOptions, RichCardOption } from "@/app/_components/RichCard.jsx" + +# Self-Hosting with Docker +> This section helps you run SpaceDF on your own infrastructure using **Docker** and **Docker Compose**. + +Choose the setup path that best fits your needs: + + + + 🚀 +
+ } + title="Quick Start" + badge="Recommended" + description="Get SpaceDF running quickly using Docker Compose with default settings." + href="/docs/getting-started/self-hosting/docker/quick-start" + /> + + + ⚙️ + + } + title="Advanced Setup" + description="Full Docker Compose configuration, security settings, and production guidance." + href="/docs/getting-started/self-hosting/docker/advanced-setup" + /> + +--- +## Prerequisites + +- [Basic Linux](https://www.digitalocean.com/community/tutorials/linux-commands) server usage (connecting to a server, running commands). +- How Docker and Docker Compose work at a high level. +- Basic networking concepts such as [ports](https://www.cloudflare.com/learning/network-layer/what-is-a-computer-port) and [firewalls](https://www.cloudflare.com/learning/security/what-is-a-firewall/) + +If you are unsure which path to choose, start with **Quick Start**. You can move to **Advanced Setup** at any time. diff --git a/src/content/getting-started/self-hosting/docker/quick-start.mdx b/src/content/getting-started/self-hosting/docker/quick-start.mdx new file mode 100644 index 0000000..5faa8ce --- /dev/null +++ b/src/content/getting-started/self-hosting/docker/quick-start.mdx @@ -0,0 +1,113 @@ +--- +sidebarTitle: Quick Start +--- + +import { Steps } from 'nextra/components' + +# Quick Start + +> This guide helps you get **SpaceDF running quickly** on your own infrastructure using **Docker Compose** and **default settings**. + +
+

Before You Begin

+
    + Make sure you have: + - Docker and Docker Compose installed + - Basic Linux command-line knowledge + - An environment with at least the minimum system requirements +
+ If you are unsure about any of the requirements above, see [Prerequisites](/docs/getting-started/self-hosting/docker/advanced-setup#prerequisites) for details. +
+ +If you need advanced configuration, security tuning, or production setup, see [Advanced Setup](/docs/getting-started/self-hosting/docker/advanced-setup) instead. + + +### Get the Source Code + +```bash copy +# Make your new spacedf project directory +mkdir spacedf-project + +# Clone the SpaceDF repository: +cd spacedf-project +git clone https://github.com/Space-DF/spacedf-core.git + +# Switch to your project directory +cd spacedf-core + +# Copy the env vars +cp .env.example .env +``` + +### Configure Environment Variables +To generate and apply all secrets at once you can run: +```sh copy +chmod +x generate-keys.sh +./generate-keys.sh +``` +The default values are sufficient for Quick Start. + +### Pull Images and Start SpaceDF +From the directory that contains your `./entrypoint.sh` file, run: + +```bash copy +# Start all services in the background +chmod +x entrypoint.sh +./entrypoint.sh +``` +This script pulls the required Docker images and starts all SpaceDF services in the background. + +### Verify Services +Confirm that all containers are running: +```bash copy +docker compose ps +``` +When all services are healthy, SpaceDF is ready to use. + + +### Default Ports +After startup, SpaceDF services are available on the following default ports: + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Service + + Port +
Dashboardlocalhost:3000
Admin Portallocalhost:3001
Backend APIlocalhost:8000
EMQX (API)localhost:18083
MQTT (WebSocket)localhost:8883
+
+Make sure these ports are open on your server and not used by other services. + +🎉 **You’re all set!** SpaceDF is now running on your server. Enjoy building with it. + +--- + +Continue with [Advanced Setup](/docs/getting-started/self-hosting/docker/advanced-setup) to customize your deployment. From 8d0bf757768a5a8630306cdc26ecfe7352a23de6 Mon Sep 17 00:00:00 2001 From: Quynh-Nguyen Date: Tue, 27 Jan 2026 01:51:07 +0000 Subject: [PATCH 2/2] Trigger Build