English | ะ ัััะบะธะน
Folkers - a private web app for easy people information management.
It provides fast and intuitive backend API, beautiful UI and safe access.
Core interaction is based on 3 main roles: watcher, editor, admin. Each one have it's own permissions and specifications:
- Watcher. Basic user with no editing permissions, only records view mode on main page.
- Editor. Can create new records and edit them (only owned).
- Admin. Can view, create, edit records (even not owned), create, edit and delete users (only owned).
Besides that Folkers system have extra hidden role: static admin. Static admin has admin main role and can do literally everything and it cannot be deleted/edited. Static admin user can be configured in environment variables (see below).
- ๐ Fast. Everything works fast out of the box.
- ๐ฅ Convenient. Simple user interface with clear instructions.
- ๐งฉ Modern. It is built using modern stack of Rust backend and SvelteKit frontend.
- โ๏ธ Safe. Your data is protected by JWT authorization.
Note
Backend:
- Language:
Rust - Web Framework:
Axum - Authorization:
Json Web Token - Database:
SurrealDB - Hashing Algorithm:
argon2
Frontend:
- Production Server:
Nginx - Framework:
SvelteKit - Language:
TypeScript - Runtime:
Bun - Components:
Skeleton UI - Markdown Compiler:
Mdsvex
- Clone the Github Repository:
git clone https://github.com/mealet/folkers
cd folkers- Install Docker from official site.
- Setup environment variables:
FOLKERS_JWT_SECRET = # secret string for jwt tokens
FOLKERS_BASE64_SALT = # base64 encoded salt for hash
FOLKERS_UPLOADS_DIR = # path to directory with uploaded media (optional)
FOLKERS_DB_USERNAME = # database username (default: root) (HIGHLY RECOMMENDED TO CHANGE)
FOLKERS_DB_PASSWORD = # database password (default: root) (HIGHLY RECOMMENDED TO CHANGE)
FOLKERS_DB_NAMESPACE = # database namespace (surrealdb) (default: folkers)
FOLKERS_DB_DATABASE = # database base name (surrealdb) (default: folkers)
FOLKERS_DB_ENDPOINT = # database endpoint (default: localhost:8080, DO NOT CHANGE IF YOU DONT KNOW)
FOLKERS_STATIC_ADMIN_USERNAME = # admin that will be created every start (default: mealet)
FOLKERS_STATIC_ADMIN_PASSWORD = # static admin password (default: mealet)- Build images:
docker compose build- Run the application:
docker compose up -d # remove this flag if you want to use interactive mode- Open http://localhost in browser
The project is licensed under the Apache 2.0 license.
For more information see LICENSE