Find a file
2025-06-16 00:10:13 +03:00
versions 1.2.2-alpha: another line just to be safe 2025-04-29 21:50:48 +03:00
.env.example improve readme, add example caddyfile and .env file 2025-02-11 23:31:28 +03:00
.gitignore adding more things 2025-02-12 22:30:27 +03:00
app.py ts outdated 2025-06-10 21:13:08 +03:00
Caddyfile added gunicorn 2025-05-23 22:46:09 +03:00
config.example.json 1.1.2-alpha, added and exposed base url on api route / 2025-03-03 21:55:03 +03:00
decorators.py v1 is now deprecated and will no longer be mentioned, 1.1.0-alpha (from now on v2): favorite notes and manual-approval 2025-04-09 15:57:37 +03:00
gunicorn.conf.py added gunicorn 2025-05-23 22:46:09 +03:00
LICENSE Initial commit 2025-02-06 23:27:28 +03:00
README.md added gunicorn 2025-05-23 22:46:09 +03:00
requirements.txt added gunicorn 2025-05-23 22:46:09 +03:00
utils.py maybe this will fix something 2025-06-16 00:10:13 +03:00

eepynotes-api

this is the backend for upcoming self-hostable notes app

THE ONLY OFFICIAL FRONTEND IS eepynotes-fe

endpoint docs: https://notes.maxy.top/maxy/api-v2-docs-(alpha)/

Note

eepynotes-api is in alpha stage so you should expect bugs

prerequisites

  • redis db
  • python 3.10+ (3.12+ recommended)

install

clone this repository: git clone https://codeberg.org/maxeepy/eepynotes-api.git

vps-specific

go into the cloned repository, create a virtual environment and activate it:

linux

python -m venv venv && . venv/bin/activate

windows (PowerShell)

python -m venv venv; .\venv\Scripts\activate


after that, install required packages:
pip install -r requirements.txt

post-install

configuration

first, rename .env.example to .env and config.example.json to config.json, then configure all the values below:

.env

REDISHOST - redis host (127.0.0.1 by default)
REDISPASSWORD - redis password
REDISPORT - redis port (6379 by default)
REDISUSER - redis user (default by default)

config.json

{
  "instance": {
	"description": "Your description here",
	"registering-option": "invite-only"
  },
	"limits": {
		"minUsername": 3,
		"maxUsername": 20,
		"maxPassword": 128
	},
	"base_url": "https://notes.example.com"
}

there can be only one option in registering-option, the options are enabled, manual-approval, invite-only or disabled

change the character limits of username and password (when registering) to your needs in limits

base_url should be set to domain name youre going to use for your frontend, without a trailing slash

after you're done configuring eepynotes-api, register the owner account using flask reg-owner <user> <password>
save the login and password to use it for the frontend

usage

start eepynotes-api by using this command:

gunicorn -w 4 app:app

runs on 127.0.0.1:8000 by default

caddy

this repository contains an example Caddyfile that runs eepynotes-api on notes-api.localhost by reverse proxying it to 127.0.0.1:8000, you can modify it as needed