Skip to content

mealet/folkers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

152 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Folkers

850_1x_shots_so

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

โš ๏ธ Project language is Russian (NOT related to politics or something like that) due application targeted users.

Features

  • ๐Ÿš€ 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.

Development Stack

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

Setup

  1. Clone the Github Repository:
git clone https://github.com/mealet/folkers
cd folkers
  1. Install Docker from official site.
  2. 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)
  1. Build images:
docker compose build
  1. Run the application:
docker compose up -d # remove this flag if you want to use interactive mode
  1. Open http://localhost in browser

License

The project is licensed under the Apache 2.0 license.
For more information see LICENSE

About

๐Ÿ”’ Closed people's information vault

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors