

I might be stupid, but I didn’t want to run the install script because I try and run everything via compose files in Komodo.
I don’t know if this helps, but this is what my compose looks like:
(Side note, I just put the ENV values directly into the compose. I know this is not recommended, so I put the values to use if you actually mount the env_file like you’re supposed to. )
services:
# ------- Ideon-App -------
ideon-app:
image: ghcr.io/3xpyth0n/ideon:latest
container_name: ideon-app
# If you want to do it correctly, mount the ENV_FILE
# env_file:
# - ${ENV_FILE:-.env}
# If you want to do it janky, follow me
environment: #If you mount a ENV_File, only PUID and PGID are needed below.
PUID: 1000 # Optional: User ID for file ownership (default: 1001)
PGID: 1000 # Optional: Group ID for file ownership (default: 1001)
# From the ENV_FILE:
APP_PORT: 3001 # Host port to expose the app (container listens on 3000) # I had Homepage on port 3000 so I moved Ideon to 3001
APP_URL: http://mymachinesip:3001/ # Public base URL of the app (used for invitations and SSO auth)
TIMEZONE: UTC # Canonical timezone for server logs ONLY
### Database
#SQLITE_PATH=./storage/dev.db # Override SQLite path (optional) # Note: PostgreSQL variables are not required in "development" mode, SQLite is used automatically (storage/dev.db).
DB_HOST: ideon-db # PostgreSQL host or service name (Docker Compose: ideon-db)
DB_PORT: 5432 # PostgreSQL port (default 5432)
DB_NAME: ideon # PostgreSQL database name
DB_USER: ideon # PostgreSQL username
DB_PASS: # I ran "openssl rand -base64 15" in the terminal to get PW # PostgreSQL password
SECRET_KEY: # I ran "openssl rand -hex 32" in the terminal to get PW
depends_on:
ideon-db:
condition: service_healthy
restart: unless-stopped
ports:
- 3001:3001 #"${APP_PORT:-3000}:${APP_PORT:-3000}"
volumes:
- /mnt/app/containers/ideon/app:/app/storage
healthcheck:
test:
["CMD", "curl", "-f", "http://localhost:3001/api/health"] #["CMD", "curl", "-f", "http://localhost/:${APP_PORT:-3000}/api/health"]
interval: 5s
timeout: 5s
retries: 5
start_period: 10s
# ------- Ideon-DB -------
ideon-db:
image: postgres:16-alpine
container_name: ideon-db
restart: unless-stopped
environment:
POSTGRES_USER: ideon # ${DB_USER}
POSTGRES_PASSWORD: #same as DB_PASS #${DB_PASS}
POSTGRES_DB: ideon # ${DB_NAME}
volumes:
- /mnt/app/containers/ideon/db:/var/lib/postgresql/data #I just hardmount everything
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ideon -d ideon"] #["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 2s
timeout: 5s
retries: 5
So far I love it. I wanted to use it locally for some low level importance notes before I try to move more over and set it up with an actual mounted env file on a VPS.
My only thought so far is that its not the greatest on mobile, but I’m really not certain what that would even look like. (Edit: I’m dumb. I didn’t close the sidebar. It actually looks pretty good on mobile. Ignore me.)
Honestly, I was surprised at how well it works on mobile, once I collapsed the sidebar. (Thats my fault for not doing that earlier when I was trying it: I feel pretty silly)
So far I’m genuinely loving it! I certainly hope the demand grows, cause its pretty fucking good so far. Thank you so much!