Free and open source ticket system written in python
1# paw - Ticket System
2
3[](LICENSE)
4[](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).