No description
- Go 93.2%
- JavaScript 3.7%
- CSS 2.3%
- Just 0.6%
- Shell 0.2%
| .data | ||
| .vscode | ||
| back_office | ||
| commons | ||
| config | ||
| crons | ||
| dockerfiles | ||
| exe | ||
| frontend | ||
| LICENSES | ||
| migrations | ||
| models | ||
| repos | ||
| src | ||
| static | ||
| testing | ||
| .dockerignore | ||
| .env.development.docker | ||
| .env.development.docker.license | ||
| .env.test.docker | ||
| .env.test.docker.license | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .tool-versions | ||
| check_node_licenses.sh | ||
| COPYING | ||
| docker-compose.prod.yml-sample | ||
| docker-compose.test.yml | ||
| docker-compose.yml | ||
| go.mod | ||
| go.sum | ||
| go.sum.license | ||
| Justfile | ||
| module.go | ||
| package.json | ||
| package.json.license | ||
| README.md | ||
| README.md.license | ||
| server.go | ||
| tailwind.config.js | ||
| vellum.conf-sample | ||
| vellum.service-sample | ||
| yarn.lock | ||
| yarn.lock.license | ||
Vellum
A copyleft, self-hosted, personal wiki. Check out the dogfooding instance.
Features
- Fast as f*ck ⚡️
- Zero tracking, analytics, ads, or other b*llshit 📈
- Markdown in, HTML/Markdown out 📄
- Syntax highlighting via chroma 💻
- MathJax support 📊
- Mmark support 📄
- Image upload 📸
- Single-user, magic-link login 🔑
- Dynamic, cached image versions 📸
- RSS feeds 📰
- Public document search 🔍
- Comments, spam protection via hCaptcha 💬
Roadmap (in no particular order)
- Push API 📤
- Webmentions 🔗
Non-goals
- ❌ Working the way you want it to (it's opinionated, and that's okay)
- ❌ Becoming the next Notion/MediaWiki/Google Docs/Wordpress (it's not in the same niche, and that's okay)
- ❌ Monetization (it's free, and that's okay)
Hosting your own
The supported way to host your own instance is by using Podman Compose.
- copy and adjust the docker-compose.yml-sample file to your needs
VELLUM_HTTP_HOSTshould be the domain name you want to use for your instanceVELLUM_OWNER_EMAILshould be your email addressVELLUM_EMAIL_HOST,VELLUM_EMAIL_USER,VELLUM_EMAIL_PASSshould be your SMTP server credentialsVELLUM_EMAIL_FROMshould be the email address you want to use for sending emails from the instanceVELLUM_DATABASE_HOST,VELLUM_DATABASE_PORT,VELLUM_DATABASE_NAME,VELLUM_DATABASE_USER,VELLUM_DATABASE_PASSshould be your database credentials - if you're using the default postgres image, you can leave them as isVELLUM_STORAGE_PATHshould be the path to the directory where you want to store your imagesVELLUM_FEED_TITLE,VELLUM_FEED_DESCRIPTION,VELLUM_FEED_AUTHOR,VELLUM_FEED_AUTHOR_EMAILshould be the feed metadataVELLUM_HCAPTCHA_SITE_KEYandVELLUM_HCAPTCHA_SECRET_KEYshould be your hCaptcha site key and secret key- keep in mind that you are in charge of keeping your .data volumes persistent and backed up! if these are lost, your instance is toast.
- create a systemd service similar to vellum.service-sample in
/etc/systemd/system/vellum.service - run
sudo systemctl daemon-reload,sudo systemctl enable vellumandsudo systemctl start vellum- this will load the service, make it run on boot, and start it now - verify that the service is running by running
sudo systemctl status vellum - you may want to ensure your user has linger enabled -
sudo loginctl enable-linger someuser- this will allow the service to keep running even after the user logs out - configure your reverse proxy to point to the service (e.g. nginx, caddy, etc) - see vellum.conf-sample for an example nginx configuration with Let's Encrypt support
- load up your instance and enjoy!
To avoid legality concerns/you having to republish your config files (which would be dumb), sample files are licensed under the MIT license.
License
This software is licensed under the GNU Affero General Public License v3.0. In short:
- you can use it, modify it, and distribute it, but you must share the source code with your users
- you will never have to pay for this software
- you may try to make money from enhancing it and hosting that enhanced version, but you must share your changes publicly (and they will be made available to everyone)
I will not release any code for this software under any other license (aka dual-licensing, re-licensing, etc).
This project complies with REUSE.