a structured, zettlekasten and org-mode inspired memex
Go to file
shibao 48f7c8d18e
continuous-integration/drone/push Build is passing Details
fix empty invite index page
2024-02-24 13:14:38 -05:00
assets sanitize tags while they are being typed 2024-02-23 22:39:01 -05:00
config fix warning in tests 2023-11-04 22:20:06 -04:00
lib fix empty invite index page 2024-02-24 13:14:38 -05:00
priv fix empty invite index page 2024-02-24 13:14:38 -05:00
test tolerate spaces in tags 2023-11-04 22:07:25 -04:00
.credo.exs use credo style 2023-02-04 17:36:27 -05:00
.drone.yml update tool versions 2024-02-23 22:14:20 -05:00
.formatter.exs upgrade to phoenix 1.7 2023-04-13 23:29:29 -04:00
.gitignore rename to memex 2022-11-03 18:23:17 -04:00
.tool-versions update tool versions 2024-02-23 22:14:20 -05:00
Dockerfile fix missing ssl and crypto packages 2024-02-23 22:44:36 -05:00
changelog.md fix empty invite index page 2024-02-24 13:14:38 -05:00
contributing.md fix some typos 2022-11-27 21:23:27 -05:00
de.tbx Added translation using Weblate (German) 2022-12-20 03:35:57 +00:00
docker-compose.yml fix broken docker-compose 2022-12-19 21:09:50 -05:00
home.png add screenshot 2022-11-26 23:24:23 -05:00
mix.exs fix faq page copy 2024-02-23 23:36:00 -05:00
mix.lock update elixir deps 2024-02-23 22:14:28 -05:00
readme.md add changes to readme and add license 2023-03-19 00:46:21 -04:00



old screenshot

memEx is an easy way to digitize the structured processes of your life.

  • Notes: Document notes about individual items or concepts
  • Contexts: Provide context around a single topic and hotlink to individual concepts in your notes
  • Pipelines: Document your processes, attaching contexts to each step.


  • Multi-user: Built with sharing and collaboration in mind
  • Privacy: Privacy controls on a per-note, context or pipeline basis
  • Convenient: Accessible from any internet-capable device


  1. Install Docker Compose or alternatively Docker Desktop on your machine.
  2. Copy the example docker-compose.yml. into your local machine where you want. Bind mounts are created in the same directory by default.
  3. Set the configuration variables in docker-compose.yml. You'll need to run docker run -it shibaobun/memex /app/priv/random.sh to generate a new secret key base.
  4. Use docker-compose up or docker-compose up -d to start the container!

The first created user will be created as an admin.


You can use the following environment variables to configure memEx in docker-compose.yml.

  • HOST: External url to generate links with. Must be set with your hosted domain name! I.e. memex.mywebsite.tld
  • PORT: Internal port to bind to. Defaults to 4000. Must be reverse proxied!
  • DATABASE_URL: Controls the database url to connect to. Defaults to ecto://postgres:postgres@memex-db/memex.
  • ECTO_IPV6: If set to true, Ecto should use ipv6 to connect to PostgreSQL. Defaults to false.
  • POOL_SIZE: Controls the pool size to use with PostgreSQL. Defaults to 10.
  • SECRET_KEY_BASE: Secret key base used to sign cookies. Must be generated with docker run -it shibaobun/memex mix phx.gen.secret and set for server to start.
  • REGISTRATION: Controls if user sign-up should be invite only or set to public. Set to public to enable public registration. Defaults to invite.
  • LOCALE: Sets a custom default locale. Defaults to en_US.
  • SMTP_HOST: The url for your SMTP email provider. Must be set
  • SMTP_PORT: The port for your SMTP relay. Defaults to 587.
  • SMTP_USERNAME: The username for your SMTP relay. Must be set!
  • SMTP_PASSWORD: The password for your SMTP relay. Must be set!
  • SMTP_SSL: Set to true to enable SSL for emails. Defaults to false.
  • EMAIL_FROM: Sets the sender email in sent emails. Defaults to no-reply@HOST where HOST was previously defined.
  • EMAIL_NAME: Sets the sender name in sent emails. Defaults to "memEx".


Contributions are greatly appreciated, no ability to code needed! You can browse the Contribution Guide to learn more.

I can be contacted at shibao@bubbletea.dev, or on the fediverse at @shibao@misskey.bubbletea.dev. Thank you!


memEx is licensed under AGPLv3 or later. A copy of the latest version of the license can be found at license.md.


  • Gitea: Main repo, feature requests and bug reports
  • Github: Source code mirror, please don't open pull requests to this repository
  • Weblate: Contribute to translations!

BuildStatus translationstatus