- Notifications
You must be signed in to change notification settings - Fork1
Multi-user issue tracking and knowledge base app built with Yew & Actix
License
vgwidt/sumi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A multi-user issue tracking system built with Yew frontend and actix-web backend.
This is a project for learning. The app is in a working state, but it is relatively unstyled, does not yet display meaningful errors, and has little input verification.
- Create, edit, close, re-assign tickets
- Ticket list with sorting, filtering, and pagination
- Enter notes for a ticket
- Ticket event tracking (re-assignments, status changes, etc)
- Nested-document style wiki
- Markdown support for ticket descriptions, notes, and wiki
- Editing conflict handling with revision history
- Multi-user support
- Local authentication with Argon2 hashing and salting
- REST-style API
- Dark/light theme
- Localization support
These are some features I'm looking to add:
- Custom dashboard
- Projects
- Tasklists for tickets
- Show number of notes and tasks for a ticket in ticket list
- Show description preview for a ticket on ticket list
- Add On Hold status for tickets
- Time tracking
- Custom ticket tags
- Recycle bin for deleted items
- Contacts
- Access levels and disabled users
- Test coverage
- More logging and error handling
These are some features I'd like to see but will not get to at this stage:
- E-mail integration (updates, submit via-e-mail)
- Scheduled tickets
- Issue submission portal
- Asset tracking
- Reporting
- Optional OIDC authentication
- Custom Fields
- Generate and place certificates in ./certificates/ folder (cert.pem & key.pem). Sample command to generate self-signed cert:
openssl req -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365 -subj /CN=localhost
Set your environment variables in .env (refer to .env.sample).
Build the Docker image
docker build -f Dockerfile -t vgwidt/sumi .
- Modify docker-compose.yml as needed and run:
docker-compose up -d
Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install diesel_cli dependencies:
- Linux
sudo apt-get install libpq-dev
- WindowsInstall PostgreSQL (don't need to include DB server if not using that for the instance). Add the following environment variables:
PQ_LIB_DIR = C:\Program Files\PostgreSQL\14\libPATH = C:\Program Files\PostgreSQL\14\bin
If you tried to build or run using cargo before adding the environment variables, run cargo clean. If in Windows and you get a Non-UTF-8 output error, install English language pack for VC build tools.
Windows: libintl-9.dll which ships with EDB is broken, get libintl-8.dll and put in debug folder (diesel-rs/diesel#2947)
Install diesel_cli
cargo install diesel_cli --no-default-features --features postgres
Install Docker (optional for quick PostgreSQL setup)
sudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-commoncurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.listsudo apt updatesudo apt install -y docker-ce docker-ce-cli containerd.iosudo systemctl status docker
Install target for wasm
rustup target add wasm32-unknown-unknown
Install trunk
cargo install trunk
Other dependencies
cargo install --locked wasm-bindgen-cli
If running from Windows, you need to manually create the symlink. Run the following from the backend folder:
mklink /D dist ..\frontend\dist
Finally, create .env file in project root. Refer to .env.sample for required variables.
Note, in a clean Linux environment using Docker for Redis without reverse proxies where everything runs on the same server, localhost does not work. Use 127.0.0.1 instead.
Execute the following to check for and execute database migrations, compile the frontend with trunk, then run the backend:
diesel migration run --config-file ./backend/diesel.tomltrunk build -d dist ./frontend/index.htmlcargo run --manifest-path ./backend/Cargo.toml
Default login is admin/password
About
Multi-user issue tracking and knowledge base app built with Yew & Actix
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.