Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ BOOTSTRAP_SECRET_KEY=

# Organization initialization
ORG_NAME=
ORG_SLUG=
OWNER_EMAIL=
OWNER_PASSWORD=

Expand Down
9 changes: 1 addition & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ If you need to customize any values after running the script, edit `.env` direct
```bash
# Organization (customize as needed)
ORG_NAME="Your Organization"
ORG_SLUG="your-org"
OWNER_EMAIL="your-email@example.com"
OWNER_PASSWORD="<auto-generated>"
# ... other OAuth configuration
Expand All @@ -69,7 +68,7 @@ chmod +x entrypoint.sh

Once ready, access:
- **Frontend Admin**: http://localhost:3001
- **Frontend Dashboard**: http://your-org.localhost:3000
- **Frontend Dashboard**: http://spacedf.localhost:3000
- **API Docs**: http://localhost:8000/docs
- **EMQX Dashboard**: http://localhost:18083
- **RabbitMQ**: http://localhost:15672
Expand Down Expand Up @@ -121,10 +120,6 @@ docker-compose -f docker-compose.yml -p spacedf-core down -v
- Default: `Default Organization`
- Example: `My Company Inc.`

**ORG_SLUG** - URL-safe identifier for your organization. Used in hostnames, aliases, and internal references. Should be lowercase with hyphens only.
- Default: `default-org`
- Example: `my-company`

**OWNER_EMAIL** - Email address of the initial organization owner. This account is created during bootstrap.
- Example: `admin@example.com`

Expand All @@ -133,8 +128,6 @@ docker-compose -f docker-compose.yml -p spacedf-core down -v

#### HAProxy Configuration

**ORG_SLUG** - Used to create dynamic network aliases like `${ORG_SLUG}.haproxy` for internal service communication.

#### Database Configuration

**AUTH_POSTGRES_PASSWORD** - Password for Auth Service PostgreSQL database.
Expand Down
2 changes: 1 addition & 1 deletion bootstrap-service
3 changes: 1 addition & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,6 @@ services:
EMQX_USERNAME: ${EMQX_USERNAME}
EMQX_PASSWORD: ${EMQX_PASSWORD}
ORG_NAME: ${ORG_NAME}
ORG_SLUG: ${ORG_SLUG}
OWNER_EMAIL: ${OWNER_EMAIL}
OWNER_PASSWORD: ${OWNER_PASSWORD}
CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS}
Expand Down Expand Up @@ -426,7 +425,7 @@ services:
networks:
default:
aliases:
- ${ORG_SLUG}.haproxy
- spacedf.haproxy
environment:
HOST: ${HOST}
JWT_PUBLIC_KEY: ${JWT_PUBLIC_KEY}
Expand Down
30 changes: 29 additions & 1 deletion entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ API_URL="${HOST}/docs"
HOST_FRONTEND_ADMIN="${HOST_FRONTEND_ADMIN}"
SCHEME="$(echo "$DASHBOARD_NEXTAUTH_URL" | sed -E 's#(https?://).*#\1#')"
DOMAIN="$(echo "$DASHBOARD_NEXTAUTH_URL" | sed -E 's#https?://##')"
HOST_FRONTEND="${SCHEME}${ORG_SLUG}.${DOMAIN}"
HOST_FRONTEND="${SCHEME}spacedf.${DOMAIN}"

clear
echo -e "\033[38;5;208m"
Expand All @@ -27,6 +27,34 @@ echo
# ===== Build & Start =====
COMPOSE_FILE="./docker-compose.yml"
PROJECT_NAME="spacedf-core"
USERNAME_CHANGED=false
PASSWORD_CHANGED=false

if docker ps --format '{{.Names}}' | grep -q "^rabbitmq$"; then
EXISTING_USER=$(docker exec rabbitmq rabbitmqctl list_users --formatter json 2>/dev/null | grep -o '"user":"[^"]*"' | head -1 | cut -d'"' -f4)

if [ -n "$EXISTING_USER" ] && [ "$EXISTING_USER" != "$RABBITMQ_DEFAULT_USER" ]; then
USERNAME_CHANGED=true
fi

if [ -n "$EXISTING_USER" ] && ! docker exec rabbitmq rabbitmqctl authenticate_user "$EXISTING_USER" "$RABBITMQ_DEFAULT_PASS" &>/dev/null; then
PASSWORD_CHANGED=true
fi
fi

# If username changed → create new account and delete old
if [ "$USERNAME_CHANGED" = true ]; then
docker exec rabbitmq rabbitmqctl add_user "$RABBITMQ_DEFAULT_USER" "$RABBITMQ_DEFAULT_PASS"
docker exec rabbitmq rabbitmqctl set_user_tags "$RABBITMQ_DEFAULT_USER" administrator
docker exec rabbitmq rabbitmqctl set_permissions -p / "$RABBITMQ_DEFAULT_USER" ".*" ".*" ".*"
docker exec rabbitmq rabbitmqctl delete_user "$EXISTING_USER"
fi

# Update password automatically
if [ "$PASSWORD_CHANGED" = true ]; then
docker exec rabbitmq rabbitmqctl change_password "$RABBITMQ_DEFAULT_USER" "$RABBITMQ_DEFAULT_PASS"
fi

echo "Deploying SpaceDF Core..."
echo "Stopping existing services (if running)..."
docker compose -f "${COMPOSE_FILE}" -p "${PROJECT_NAME}" stop || true
Expand Down
1 change: 0 additions & 1 deletion generate-keys.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ env_vars = {
'MQTT_BROKER_BRIDGE_PASSWORD': 'Default@1234',
'MQTT_PASSWORD': 'Default@1234',
'ORG_NAME': 'Default Organization',
'ORG_SLUG': 'default-org',
'OWNER_EMAIL': 'admin@example.com',
'OWNER_PASSWORD': 'changeme@Default123',
'BOOTSTRAP_SECRET_KEY': os.environ['BSK'],
Expand Down