Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Multi-user issue tracking and knowledge base app built with Yew & Actix

License

NotificationsYou must be signed in to change notification settings

vgwidt/sumi

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.

Features

  • 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

Future Features

Down the pipe

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

Pipe-dream

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

Quickstart with Docker

  1. 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
  1. Set your environment variables in .env (refer to .env.sample).

  2. Build the Docker image

docker build -f Dockerfile -t vgwidt/sumi .
  1. Modify docker-compose.yml as needed and run:
docker-compose up -d

Setup Development Environment

Install Dependencies

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.

Build

Run./run.sh (Linux, set to executable withchmod +x ./run.sh) or.\run.bat (Windows). This will execute the database migration, use trunk to build the frontend, then run the backend with cargo.

Getting Started

Default login is admin/password

About

Multi-user issue tracking and knowledge base app built with Yew & Actix

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp