this post was submitted on 01 Mar 2026
215 points (96.9% liked)

Selfhosted

57074 readers
999 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

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

top 40 comments
sorted by: hot top controversial new old
[–] guynamedzero@piefed.zeromedia.vip 5 points 12 hours ago* (last edited 12 hours ago) (1 children)

This looks seriously amazing, I’m totally gonna host this for myself tonight. And as someone else said, try to move off of GitHub if possible!

[–] expyth0n@lemmy.world 4 points 8 hours ago

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

[–] BlameTheAntifa@lemmy.world 39 points 22 hours ago (1 children)

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

[–] expyth0n@lemmy.world 18 points 22 hours ago (1 children)

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

[–] in_my_honest_opinion@piefed.social 34 points 21 hours ago* (last edited 21 hours ago) (2 children)

There's many good articles out 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/

[–] filcuk@lemmy.zip 3 points 7 hours ago (1 children)

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.

[–] expyth0n@lemmy.world 18 points 20 hours ago

You're awesome !

[–] artwork@lemmy.world 52 points 1 day ago* (last edited 1 day ago) (1 children)

Wait... there's no LLM/AI nonsensical utter bloody-void horrible mess?
My gracious holy smokes... THANK YOU!!!!!!!!! Thank you... from the very depths of my heart... and soul... for making something that is actually important... that is for human...

Thank you, dear @expyth0n@lemmy.world for the marvel... art... you do...

There's still belief in effort, education, human, art... in the purpose...

[–] expyth0n@lemmy.world 28 points 1 day ago

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

[–] jjlinux@lemmy.zip 9 points 20 hours ago* (last edited 20 hours ago) (1 children)

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 🤣

Edit: 2 things

1.- that demo looks awesome. Thank you so much.

2.- can you suggest an easy way to migrate all my Obsidian data to Ideon please? Otherwise, I'm looking at a few (using the word 'few' very lightly here) hours of copy/paste.

[–] expyth0n@lemmy.world 10 points 19 hours ago (1 children)

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

[–] jjlinux@lemmy.zip 2 points 16 hours ago* (last edited 16 hours ago)

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 while using Ideon, 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 🤣

[–] RanchBranch@anarchist.nexus 6 points 21 hours ago* (last edited 13 hours ago) (1 children)

This looks incredible! Kind of bummed I didn't notice this when you shared it last time, as I've been trying to find essentially literally this.

I'm also on agreement with everyone else, its refreshing to see something non-AI

[–] expyth0n@lemmy.world 2 points 14 hours ago

Ah man, that actually means a lot. Timing is everything I guess 😅

[–] F4celess@sopuli.xyz 7 points 23 hours ago (1 children)

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

[–] expyth0n@lemmy.world 2 points 23 hours ago

Thanks 🙌, appreciate it !

[–] HelloRoot@lemy.lol 5 points 22 hours ago (1 children)

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

[–] expyth0n@lemmy.world 4 points 22 hours ago

YAY ! The goat 😆

[–] randombullet@programming.dev 1 points 15 hours ago (2 children)

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

Would like to reverse proxy this into my VPS.

[–] RanchBranch@anarchist.nexus 2 points 9 hours ago* (last edited 8 hours ago) (1 children)

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

[–] expyth0n@lemmy.world 2 points 8 hours ago (1 children)

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

[–] RanchBranch@anarchist.nexus 2 points 7 hours ago

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!

[–] expyth0n@lemmy.world 1 points 15 hours ago

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

[–] irmadlad@lemmy.world 2 points 19 hours ago

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

[–] StreetKid@reddthat.com 3 points 23 hours ago (1 children)

Looks quite impressive!

Not sure if useful for me though.

[–] expyth0n@lemmy.world 2 points 20 hours ago

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

[–] Tywele@piefed.social 2 points 22 hours ago (1 children)

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.

[–] expyth0n@lemmy.world 1 points 22 hours ago (1 children)

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

[–] Tywele@piefed.social 3 points 22 hours ago (1 children)

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

[–] expyth0n@lemmy.world 3 points 21 hours ago

#GoodFirstIssue 😹

[–] Shimitar@downonthestreet.eu 2 points 23 hours ago (1 children)

Refreshingly not an ai made thing...

Nothing bad about using ai but

[–] expyth0n@lemmy.world 6 points 23 hours ago (1 children)

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.

[–] Shimitar@downonthestreet.eu 2 points 20 hours ago

I am with you my friend, all the way