Home

Ideon: I'm building a self-hosted project cockpit on an infinite canvas (v0.5 update)

$$5661
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 13:24

Hey selfhosters šŸ‘‹

A few weeks ago I shared Ideon here and got great feedback that shaped a lot of what I’ve been working on since.

Since my last post here, Ideon crossed 200 stars on GitHub and I wanted to say thank you ā¤. It means a lot to see people interested in what started as a side project. It motivated me to work on it literally every day since then.

For those who missed it: Ideon is a self-hosted visual workspace where you lay out everything about a project on an infinite canvas: notes, Git repos, code snippets, checklists, sketches, links and connect them together. Two containers, no external dependencies.

Since then, a lot has changed and I wanted to share an update.

Self-hosting got smoother. Docker permission issues with bind mounts are gone, build times are faster, and there’s a new GIT_ALLOWED_HOSTS env variable so you can whitelist your internal Git servers (Gitea, Forgejo, GitLab behind a VPN, etc.) without the SSRF filter blocking them.

Collaboration got real structure. There are now 4 project roles (Creator, Owner, Editor, Viewer), a Request Access workflow for private projects, and the canvas supports real-time multiplayer with conflict-free editing.

The canvas got a lot more usable. Keyboard navigation (arrow keys + vim keys), a command palette, freehand sketch blocks, drag-and-drop checklists with progress bars, markdown tables and task lists, emoji reactions on blocks, edge labels, and a bunch of stability fixes for large projects.

Where this is going next:

Right now Ideon lets you see your project. Git stats, issues, PRs show up on the canvas, but you can only look at them. For the v1 I want to move from visibility to control. Merge a PR from the canvas. Trigger a deployment. Restart a service. Turn the workspace into an actual cockpit where you operate your project, not just view it.

That’s the direction. Curious what this community thinks about it.

If you tried it and hit something rough, or if you’ve been waiting to try it, now’s a good time. Feedback always welcome.

GitHub: https://github.com/3xpyth0n/ideon

Docs: https://www.theideon.com/docs

https://lemmy.world/post/43725501
Reply
$$5668
https://lemmy.world/u/artwork posted on Mar 1, 2026 13:31
In reply to: https://lemmy.world/post/43725501

Wait… there’s no LLM/AI nonsensical utter bloody-void mess?
My gracious sakes… THANK YOU!!!!!!!!! Thank you… from the very depths of my heart… and soul… for making something that is actually for human…
Thank you, dear expyth0n@lemmy.world for the marvel… art… you do…
There’s still believe in education, human, art… in the purpose…

https://lemmy.world/comment/22412832
Reply
$$5671
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 13:41
In reply to: https://lemmy.world/comment/22412832

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 :)

https://lemmy.world/comment/22412955
Reply
$$5694
https://downonthestreet.eu/u/Shimitar posted on Mar 1, 2026 14:34
In reply to: https://lemmy.world/post/43725501

Refreshingly not an ai made thing…

Nothing bad about using ai but

https://downonthestreet.eu/comment/788057
Reply
$$5695
https://sopuli.xyz/u/F4celess posted on Mar 1, 2026 14:36
In reply to: https://lemmy.world/post/43725501

Very interesting, forwarding this to several groups who seem stuck with Miro boards.

https://sopuli.xyz/comment/22172421
Reply
$$5696
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 14:38
In reply to: https://sopuli.xyz/comment/22172421

Thanks šŸ™Œ, appreciate it !

https://lemmy.world/comment/22413740
Reply
$$5699
https://reddthat.com/u/StreetKid posted on Mar 1, 2026 14:44
In reply to: https://lemmy.world/post/43725501

Looks quite impressive!

Not sure if useful for me though.

https://reddthat.com/comment/25082343
Reply
$$5700
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 14:44
In reply to: https://downonthestreet.eu/comment/788057

Yes, of course, but I just think that when you make something and especially invite people to use it, you have to at least know what you’re doing, cuz I see a lot of people who promote open source, who want to contribute and so on, saying it’s free stuff, that’s okay, But throw something with AI, you don’t even know WTH you’re doing and you ask people to install your thing ? That’s where I really lose it tbh.

https://lemmy.world/comment/22413831
Reply
$$5715
https://lemy.lol/u/HelloRoot posted on Mar 1, 2026 15:38
In reply to: https://lemmy.world/post/43725501

Already selfhosting it. Thank you so much for your time and effort <3

https://lemy.lol/comment/24460221
Reply
$$5716
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 15:40
In reply to: https://lemy.lol/comment/24460221

YAY ! The goat šŸ˜†

https://lemmy.world/comment/22414672
Reply
$$5717
https://lemmy.world/u/BlameTheAntifa posted on Mar 1, 2026 15:41
In reply to: https://lemmy.world/post/43725501

This is a neat project. You should consider moving this to Codeberg, though. Github is a serious risk for FOSS projects.

https://lemmy.world/comment/22414687
Reply
$$5720
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 15:46
In reply to: https://lemmy.world/comment/22414687

Thank you, I am not aware of the risk with GitHub, can you tell me more?

https://lemmy.world/comment/22414781
Reply
$$5722
https://piefed.social/u/Tywele posted on Mar 1, 2026 15:49
In reply to: https://lemmy.world/post/43725501

I just wanted to try the demo linked on your Github and I couldn’t login with the provided username and password even though I copy and pasted them.

https://piefed.social/comment/10344553
Reply
$$5724
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 15:50
In reply to: https://piefed.social/comment/10344553

how ? I just tried right now and it works, do you get an error or sum ?

https://lemmy.world/comment/22414855
Reply
$$5727
https://piefed.social/u/Tywele posted on Mar 1, 2026 16:00
In reply to: https://lemmy.world/comment/22414855

Now it worked for me too. I don’t know, it told me that the username or password is wrong.

https://piefed.social/comment/10344681
Reply
$$5734
https://anarchist.nexus/u/RanchBranch posted on Mar 1, 2026 16:15
In reply to: https://lemmy.world/post/43725501

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

https://anarchist.nexus/comment/2857330
Reply
$$5740
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 16:35
In reply to: https://piefed.social/comment/10344681

#GoodFirstIssue 😹

https://lemmy.world/comment/22415599
Reply
$$5750
https://piefed.social/u/in_my_honest_opinion posted on Mar 1, 2026 16:55
In reply to: https://lemmy.world/comment/22414781

There’s a few good articlesout there if you have the time. It boils down to stolen code, forced identification and enshittification.

https://sfconservancy.org/GiveUpGitHub/

https://laoutaris.org/blog/codeberg/

https://blog.joergi.io/posts/2025-09-20-migrate-from-github-to-codeberg/

https://piefed.social/comment/10345337
Reply
$$5755
https://downonthestreet.eu/u/Shimitar posted on Mar 1, 2026 17:16
In reply to: https://lemmy.world/comment/22413831

I am with you my friend, all the way

https://downonthestreet.eu/comment/788285
Reply
$$5756
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 17:17
In reply to: https://piefed.social/comment/10345337

You’re awesome !

https://lemmy.world/comment/22416313
Reply
$$5760
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 17:19
In reply to: https://reddthat.com/comment/25082343

Thanks, there’s a demo if you want to try, just in case

https://lemmy.world/comment/22416338
Reply
$$5776
https://lemmy.zip/u/jjlinux posted on Mar 1, 2026 17:31
In reply to: https://lemmy.world/post/43725501

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 🤣

https://lemmy.zip/comment/24961826
Reply
$$5795
https://lemmy.world/u/irmadlad posted on Mar 1, 2026 18:30
In reply to: https://lemmy.world/post/43725501

The demo is sweet bro. Seriously, looks good. I’m going to have to check this out.

https://lemmy.world/comment/22417711
Reply
$$5799
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 18:43
In reply to: https://lemmy.zip/comment/24961826

Okay, I’m not taking responsibility for any divorces caused by Ideon 😹

https://media3.giphy.com/media/v1.Y2lkPTZjMDliOTUyZzFvbjd5cTZrb2tvemNhYzFvdzRtcHEwdDgyb2tiYmxoN3p1MTZyNCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/GMOVMW9QFjZUDU09UX/giphy.gif

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 :)

https://lemmy.world/comment/22417925
Reply
$$5904
https://lemmy.zip/u/jjlinux posted on Mar 1, 2026 21:56
In reply to: https://lemmy.world/comment/22417925

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 🤣

https://lemmy.zip/comment/24967186
Reply
$$5916
https://programming.dev/u/randombullet posted on Mar 1, 2026 22:15
In reply to: https://lemmy.world/post/43725501

Maybe I’m blind, but is there a docker composed YAML?

Would like to reverse proxy this into my VPS.

https://programming.dev/comment/22470470
Reply
$$5941
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 22:53
In reply to: https://programming.dev/comment/22470470

of course, there is better, i made an installer that does everything for you, downloads the yaml, the env.example creates secrets, prompts for hostname, port, etc. and finally starts the containers, of course you still have the choice to say no at every step, or edit the .env manually, everything is in the repo (I tried to post it here but seems to be blocked by lemmy’s firewall :-/ )

https://lemmy.world/comment/22421643
Reply
$$5955
https://lemmy.world/u/expyth0n posted on Mar 1, 2026 23:37
In reply to: https://anarchist.nexus/comment/2857330

Ah man, that actually means a lot. Timing is everything I guess šŸ˜…

https://lemmy.world/comment/22422224
Reply
$$5984
https://piefed.zeromedia.vip/u/guynamedzero posted on Mar 2, 2026 01:27
In reply to: https://lemmy.world/post/43725501

This looks seriously amazing, I’m totally gonna host this for myself tonight

https://piefed.zeromedia.vip/comment/1689094
Reply
$$6056
https://anarchist.nexus/u/RanchBranch posted on Mar 2, 2026 04:57
In reply to: https://programming.dev/comment/22470470

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.

https://anarchist.nexus/comment/2865538
Reply
$$6058
https://lemmy.ca/u/corsicanguppy posted on Mar 2, 2026 05:02
In reply to: https://lemmy.world/post/43725501

two containers

Good luck, but I’m out.

https://lemmy.ca/comment/21978344
Reply
$$6062
https://lemmy.world/u/expyth0n posted on Mar 2, 2026 05:08
In reply to: https://lemmy.ca/comment/21978344

bro, there’s one container for the app, and one container for postgres, the all doesn’t surpass 500 Mo of RAM… shere do you except to host the database ?

https://lemmy.world/comment/22425514
Reply
$$6067
https://lemmy.world/u/expyth0n posted on Mar 2, 2026 05:29
In reply to: https://anarchist.nexus/comment/2865538

yeah obviously that’s ok, glad you like it, and yes, didn’t really focus on a mobile mode yet, but it’s coming soon if demand were to grow

https://lemmy.world/comment/22425671
Reply
$$6070
https://lemmy.world/u/expyth0n posted on Mar 2, 2026 05:31
In reply to: https://piefed.zeromedia.vip/comment/1689094

THANKS ! and yes from what I’ve read, I am strongly considering it

https://lemmy.world/comment/22425698
Reply
$$6076
https://anarchist.nexus/u/RanchBranch posted on Mar 2, 2026 06:09
In reply to: https://lemmy.world/comment/22425671

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!

https://anarchist.nexus/comment/2866022
Reply
$$6084
https://lemmy.zip/u/filcuk posted on Mar 2, 2026 06:27
In reply to: https://piefed.social/comment/10345337

You’re not wrong, but unfortunately for now github is the best for reach and discovery, which may be important for these kind of projects.

https://lemmy.zip/comment/24974062
Reply
$$6197
https://mander.xyz/u/hoppolito posted on Mar 2, 2026 12:23
In reply to: https://lemmy.world/comment/22425514

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.

https://mander.xyz/comment/25592890
Reply
$$6198
https://lemmy.world/u/expyth0n posted on Mar 2, 2026 12:25
In reply to: https://mander.xyz/comment/25592890

ohh okay good to know, thanks for the advice !

https://lemmy.world/comment/22429548
Reply
$$6211
https://mander.xyz/u/hoppolito posted on Mar 2, 2026 12:51
In reply to: https://lemmy.world/comment/22429548

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.

https://mander.xyz/comment/25593339
Reply
$$6216
https://piefed.social/u/in_my_honest_opinion posted on Mar 2, 2026 13:00
In reply to: https://lemmy.zip/comment/24974062

Doubt

https://piefed.social/comment/10355529
Reply
$$6219
https://lemmy.world/u/expyth0n posted on Mar 2, 2026 13:12
In reply to: https://mander.xyz/comment/25593339

ohh you’re great, I definitely won’t forget !

https://lemmy.world/comment/22430244
Reply
$$6235
https://jlai.lu/u/Hadriscus posted on Mar 2, 2026 14:27
In reply to: https://lemmy.zip/comment/24974062

Is it somehow possible to mirror a repo from say codeberg to github and get the best of both ? discoverability and long term autonomy from microsoft

https://jlai.lu/comment/19760411
Reply
$$6317
https://lemmy.zip/u/jjlinux posted on Mar 2, 2026 18:01
In reply to: https://lemmy.world/comment/22417925

https://lemmy.zip/pictrs/image/38de813f-0d44-4393-88bc-2c899ad0ebae.avif

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.

https://lemmy.zip/comment/24984407
Reply
$$6320
https://lemmy.world/u/Sinirlan posted on Mar 2, 2026 18:22
In reply to: https://lemmy.world/post/43725501

Looks really interesting, I’ll try it as soon as there is non-piped docker-compose. I tried to deploy it with portainer but gave up after half hour of fiddling with url/ip:port combinations, I just cant make it work with NginxProxyManager.

https://lemmy.world/comment/22435930
Reply
$$6329
https://lemmy.world/u/Mister_Hangman posted on Mar 2, 2026 18:41
In reply to: https://lemmy.world/comment/22412832

This alone is why I’m checking this out

https://lemmy.world/comment/22436221
Reply
$$6542
https://lemmy.world/u/expyth0n posted on Mar 3, 2026 06:08
In reply to: https://lemmy.world/comment/22435930

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.

https://lemmy.world/comment/22445880
Reply
$$6796
https://programming.dev/u/anzo posted on Mar 3, 2026 20:37
In reply to: https://jlai.lu/comment/19760411

Yes it is.

https://programming.dev/comment/22508227
Reply
$$6797
https://programming.dev/u/anzo posted on Mar 3, 2026 20:41
In reply to: https://lemmy.zip/comment/24974062

As OP said, stars correlated with their own posting on Lemmy. So your affirmation is not absolutely true. It’s all relative… same applies to posting on reddit vs. lemmy… There’s a dilemma between popularity vs. a smaller niche population with ethical concerns.

In a similar vein, PRs might be more in quantity but less in quality when comparing any foss project on github vs codeberg…

https://programming.dev/comment/22508307
Reply