{"id":13806716,"url":"https://github.com/vgwidt/sumi","last_synced_at":"2025-05-13T22:30:39.860Z","repository":{"id":65919530,"uuid":"579585968","full_name":"vgwidt/sumi","owner":"vgwidt","description":"Multi-user issue tracking and knowledge base app built with Yew \u0026 Actix","archived":false,"fork":false,"pushed_at":"2024-01-20T01:16:26.000Z","size":373,"stargazers_count":10,"open_issues_count":25,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-18T22:32:35.126Z","etag":null,"topics":["actix-web","full-stack","issue-tracker","knowledge-base","rust","ticketing-system","yew"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vgwidt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-12-18T07:19:01.000Z","updated_at":"2024-09-15T12:27:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"3141fc78-fa59-4233-95ef-a3b25be32089","html_url":"https://github.com/vgwidt/sumi","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgwidt%2Fsumi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgwidt%2Fsumi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgwidt%2Fsumi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgwidt%2Fsumi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vgwidt","download_url":"https://codeload.github.com/vgwidt/sumi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254036812,"owners_count":22003655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actix-web","full-stack","issue-tracker","knowledge-base","rust","ticketing-system","yew"],"created_at":"2024-08-04T01:01:15.136Z","updated_at":"2025-05-13T22:30:39.413Z","avatar_url":"https://github.com/vgwidt.png","language":"Rust","funding_links":[],"categories":["Projects"],"sub_categories":[],"readme":"\u003ch1\u003eSumi\u003c/h1\u003e\n\nA multi-user issue tracking system built with Yew frontend and actix-web backend.\n\nThis 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.\n\n## Features\n- [x] Create, edit, close, re-assign tickets\n- [x] Ticket list with sorting, filtering, and pagination\n- [x] Enter notes for a ticket\n- [x] Ticket event tracking (re-assignments, status changes, etc)\n- [X] Nested-document style wiki\n- [x] Markdown support for ticket descriptions, notes, and wiki\n- [x] Editing conflict handling with revision history\n- [x] Multi-user support\n- [x] Local authentication with Argon2 hashing and salting\n- [x] REST-style API\n- [x] Dark/light theme\n- [x] Localization support\n\n## Future Features\n\n### Down the pipe\nThese are some features I'm looking to add:\n- [ ] Custom dashboard\n- [ ] Projects\n- [ ] Tasklists for tickets\n- [ ] Show number of notes and tasks for a ticket in ticket list\n- [ ] Show description preview for a ticket on ticket list\n- [ ] Add On Hold status for tickets\n- [ ] Time tracking\n- [ ] Custom ticket tags\n- [ ] Recycle bin for deleted items\n- [ ] Contacts\n- [ ] Access levels and disabled users\n- [ ] Test coverage\n- [ ] More logging and error handling\n\n### Pipe-dream\nThese are some features I'd like to see but will not get to at this stage:\n- [ ] E-mail integration (updates, submit via-e-mail)\n- [ ] Scheduled tickets\n- [ ] Issue submission portal\n- [ ] Asset tracking\n- [ ] Reporting\n- [ ] Optional OIDC authentication\n- [ ] Custom Fields\n\n## Quickstart with Docker\n\n1. Generate and place certificates in ./certificates/ folder (cert.pem \u0026 key.pem).  Sample command to generate self-signed cert:\n```\nopenssl req -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365 -subj /CN=localhost\n```\n\n2. Set your environment variables in .env (refer to .env.sample).\n\n3. Build the Docker image\n```\ndocker build -f Dockerfile -t vgwidt/sumi .\n```\n\n4. Modify docker-compose.yml as needed and run:\n```\ndocker-compose up -d\n```\n\n## Setup Development Environment\n\n### Install Dependencies\n\nInstall Rust\n```\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nInstall diesel_cli dependencies:\n* Linux\n```\nsudo apt-get install libpq-dev\n```\n* Windows\nInstall PostgreSQL (don't need to include DB server if not using that for the instance). Add the following environment variables:\n```\nPQ_LIB_DIR = C:\\Program Files\\PostgreSQL\\14\\lib\nPATH = C:\\Program Files\\PostgreSQL\\14\\bin\n```\n\nIf 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.\n\nWindows: libintl-9.dll which ships with EDB is broken, get libintl-8.dll and put in debug folder (https://github.com/diesel-rs/diesel/discussions/2947)\n\nInstall diesel_cli\n```\ncargo install diesel_cli --no-default-features --features postgres\n```\n\nInstall Docker (optional for quick PostgreSQL setup)\n```\nsudo apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common\ncurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg\necho \"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.list\nsudo apt update\nsudo apt install -y docker-ce docker-ce-cli containerd.io\nsudo systemctl status docker\n```\n\nInstall target for wasm\n```\nrustup target add wasm32-unknown-unknown\n```\n\nInstall trunk\n```\ncargo install trunk\n```\n\nOther dependencies\n```\ncargo install --locked wasm-bindgen-cli\n```\n\nIf running from Windows, you need to manually create the symlink.  Run the following from the backend folder:\n```\nmklink /D dist ..\\frontend\\dist\n```\n\nFinally, create .env file in project root.  Refer to .env.sample for required variables.\n\nNote, 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.\n\n### Build\n\nRun `./run.sh` (Linux, set to executable with `chmod +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.\n\n## Getting Started\n\nDefault login is admin/password","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgwidt%2Fsumi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvgwidt%2Fsumi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgwidt%2Fsumi/lists"}