Ideon: I'm building a self-hosted project cockpit on an infinite canvas (v0.5 update)
Ideon: I'm building a self-hosted project cockpit on an infinite canvas (v0.5 update)
This is honestly one of the kindest messages I’ve received. THANKS ❤.
I’m just tired of seeing every project full of soulless AI slop for fame.
I try to build things with intention, even if it’s not the “trend”, I prefer to stay aligned with what suits me :)
Refreshingly not an ai made thing…
Nothing bad about using ai but
Looks quite impressive!
Not sure if useful for me though.
This looks incredible! Kind of bummed I didn’t notice this when you shared it last time, as I’ve been trying to found essentially literally this.
I’m also on agreement with everyone else, ius refreshing to see something non-AI
No, I said I wasn’t playing with my server this weekend. I promised my wife. She’ll get pissed.
I guess I’m getting a divorce 🤣
Okay, I’m not taking responsibility for any divorces caused by Ideon 😹
Really glad you liked the demo though, that means a lot. I honestly didn’t expect people to seriously consider moving their whole setup.
For Obsidian migration, yes, I can absolutely make it happen. But I want to be transparent, it’ll take a bit of time to build something clean and reliable :)
Take your time. It’s by no means a deal breaker. I’m sucked into self-hosting deep enough that I can keep what’s in Obsidian right now and just wait until I can move it to Ideon. It wouldn’t be the first time I have 2 services running in parallel until I figure out which one I’m keeping. Hell, I did that for almost a year when I was in Joplin and then decided to move to Obsidian.
As for the divorce, I don’t think it’s going to happen any time soon. She wanted to catch-up on Solo Leveling, so I joined her. I’ll spin up the server tomorrow when she leaves for work 🤣
OK, ready to be a guinea pig for another nice self-hosted service. Just let me know what you want to test from now on, and I’ll freely do so, break it if necessary, and try to put it back together.
Thanks, this is pretty cool.
Also, as others have mentioned, a bit of on how to configure the .env file and other modifications to the docker-compose.yml is always a good idea to make sure people that may not be as tech savvy have some idea on how to troubleshoot. For example, in the .env file the instructions on the ‘App URL’ are clear to me, and evidently to you, but I know of many that would not be able to get it to work over a cloudflare tunnel, for example, only because they wouldn’t touch this part.
Just something to keep in mind.
Maybe I’m blind, but is there a docker composed YAML?
Would like to reverse proxy this into my VPS.
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.
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!
two containers
Good luck, but I’m out.
While the comment was obviously a bit rude, perhaps you can take something constructive out of it. I see that you have a nice compose file prepared as an example with postgres, and a curl into bash for ‘automatic installation’.
Many feel a bit uncomfortable with doing that - especially if the script ultimately just sets up docker containers again. Maybe you could add a ‘quickstart’ section there which just consists of a single docker run command setting up the sqlite version.
That way you have the best of both worlds and both people wanting a production setup example and those just wanting to quickly try are served.
On a more personal note, still eagerly reading your updates here every couple of weeks. Sounds like it’s shaping up nicely!
Good luck with the api wiring to let people control the forges directly from the interface for 1.0 - if you ever need a tester for forgejo integration you can hit me up.
There is already a non-piped docker-compose setup. The installer just downloads the compose file and env.example, and you can also get them manually from GitHub.
You don’t need to set APP_PORT. If it’s unset, the app falls back to the PORT var provided by Portainer. Just make sure APP_URL exactly matches the root path you’re using behind Nginx.
I know from a friend his deployment running fine on Portainer, so it should work with a standard setup.