Free and open source ticket system written in python
at main 111 lines 3.6 kB view raw view rendered
1# paw - Ticket System 2 3[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) 4[![Python Version](https://img.shields.io/badge/python-3.12-blue.svg)](https://www.python.org/downloads/release/python-3120/) 5<a href='https://ko-fi.com/alexottr' target='_blank'><img height='35' style='border:0px;height:24px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com'></a> 6 7🚀 paw is a comprehensive and open source ticket management system designed to streamline issue tracking and resolution processes for organizations. It provides a centralized platform for users to submit, track, and manage tickets or requests, facilitating efficient communication and collaboration among team members. 8 9## Features 10 11- **Ticket Creation and Submission:** Users can create and submit tickets with detailed information about the issue, including title, description, priority, and category and file attachments. 12 13- **Ticket Assignment and Ownership:** Tickets can be assigned to specific individuals or teams responsible for resolution, allowing for clear ownership and accountability. 14 15- **Communication and Collaboration:** Threaded communication enables seamless collaboration among team members, with the ability to add (internal) comments, attachments, and updates to tickets. 16 17- **Security and Access Control:** Secure user authentication, access controls, and audit trails ensure data privacy and compliance with organizational policies and regulations. You can create teams and restrict access of ticket categories to them. 18 19## Installation 20 21### As a Developer 22 231. Clone the repository: 24 25```bash 26git clone https://github.com/aottr/paw.git 27``` 28 292. Install dependencies: 30 31```bash 32poetry install 33``` 34 353. Configure settings: 36 Copy `example.env` to `.env` and update the configuration variables as needed. 37 384. Run migrations: 39 40```bash 41poetry run python manage.py migrate 42``` 43 445. Start the development server: 45 46```bash 47poetry run python manage.py runserver 48``` 49 50### Docker / OCI Container 51 52The Project contains a [Dockerfile](Dockerfile) that can be built locally or in a pipeline. I also provide the latest state of the `main` branch as an image 53 54#### Compose 55 561. Create a compose file, e.g. `docker-compose.yml` 57 58```bash 59version: '3.8' 60services: 61 paw: 62 image: ghcr.io/aottr/paw:latest 63 container_name: paw-ticket-system 64 command: bash -c "python manage.py migrate && python manage.py runserver 0.0.0.0:8000" 65 restart: unless-stopped 66 ports: 67 - "127.0.0.1:8000:8000" 68 env_file: 69 - .env 70``` 71 722. Run the container with compose 73 74```bash 75docker compose up -d 76``` 77 783. Migrate the database (optional, recommended) 79 80```bash 81docker compose exec paw python manage.py migrate 82``` 83 844. Collect static files (optional, recommended) 85 86```bash 87docker compose exec paw python manage.py collectstatic --no-input 88``` 89 90## Usage 91 92- Access the application through `http://localhost:8000`. 93- Register an account or log in with existing credentials. 94- Start creating and managing tickets based on your role and permissions. 95 96### Sending Mails 97If not configured, mails get sent to the console stdout. This is (mainly) for use in dev environments. 98SMTP can be used by setting the `MAIL_SERVER` variable to `smtp`. 99 100To also assign a display name when sending mails, adjust the `EMAIL_FROM` variable in the following format: 101``` 102EMAIL_FROM='Don't Reply <do_not_reply@domain.example>' 103``` 104 105## Contributing 106 107🙌 Contributions are welcome! Please follow the [guidelines](CONTRIBUTING.md). 108 109## License 110 111This project is licensed under the [MIT License](LICENSE).