Deploying Roundup Issue Tracker
Introduction
Roundup is a highly customizable issue tracking system that powers many open-source projects’ bug trackers. Known for its flexibility and Python-based customization, Roundup can be adapted to track virtually any type of issue, from software bugs to customer support tickets.
Key highlights of Roundup:
- Highly Customizable: Flexible schema for any issue type
- Email Integration: Full email gateway for creating and updating issues
- Web Interface: Clean, functional web UI
- REST API: Programmatic access to all data
- Multiple Databases: Support for SQLite, PostgreSQL, MySQL
- Nosy Lists: Automatic notifications to interested parties
- Customizable Workflow: Define states and transitions
- Search: Powerful search with saved queries
- Python Extensibility: Customize with Python code
- Proven Track Record: Powers Python’s bugs.python.org
- Open Source: MIT/Zlib licensed
This guide walks through deploying Roundup on Klutch.sh using Docker for your project’s issue tracking.
Why Deploy Roundup on Klutch.sh
Deploying Roundup on Klutch.sh provides several advantages:
Simplified Deployment: Klutch.sh automatically builds and deploys Roundup without complex Python environment setup.
Persistent Storage: Attach persistent volumes for the issue database that survives container restarts.
HTTPS by Default: Klutch.sh provides automatic SSL for secure issue tracking.
Environment Variable Management: Securely store configuration through Klutch.sh.
Custom Domains: Assign a custom domain for your issue tracker.
Prerequisites
Before deploying Roundup on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Roundup configuration
- Basic familiarity with Docker and Python
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for Roundup deployment.
Repository Structure
roundup-deploy/├── Dockerfile├── tracker/│ └── (tracker configuration)└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM python:3.11-slim
# Install RoundupRUN pip install roundup
# Create tracker directoryRUN mkdir -p /var/tracker
# Set environment variablesENV TRACKER_HOME=/var/trackerENV TRACKER_WEB=http://0.0.0.0:8080/
# Initialize tracker if not existsRUN roundup-admin -i /var/tracker install classic || true
# Expose the web interface portEXPOSE 8080
# Start the web serverCMD ["roundup-server", "-p", "8080", "-n", "0.0.0.0", "tracker=/var/tracker"]Environment Variables Reference
| Variable | Required | Description |
|---|---|---|
TRACKER_HOME | No | Path to tracker data (default: /var/tracker) |
ROUNDUP_ADMIN_EMAIL | No | Admin email address |
Deploying Roundup on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8080
Push Your Repository to GitHub
Commit and push your Dockerfile to GitHub.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project with a descriptive name like “roundup” or “issue-tracker”.
Create a New App
Within your project, create a new app. Connect your GitHub account and select the repository containing your Roundup Dockerfile.
Configure HTTP Traffic
In the deployment settings:
Attach Persistent Volumes
Add the following volume:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/tracker | 5 GB | Tracker database and files |
Deploy Your Application
Click Deploy to start the build process.
Access Roundup
Once deployment completes, access Roundup at your app URL.
Initial Configuration
First-Time Setup
- Access the tracker at your URL
- Log in with the admin account created during installation
- Configure tracker settings
Customizing the Schema
- Edit the tracker’s
schema.pyfile - Define custom issue types and properties
- Restart to apply changes
Configuring Email
- Edit
config.iniin the tracker directory - Configure SMTP settings for outgoing mail
- Set up email gateway for incoming mail
User Management
- Navigate to the admin interface
- Create user accounts
- Assign roles and permissions
Working with Issues
Creating Issues
- Click “Create New” in the interface
- Fill in issue details
- Assign to users via nosy list
- Submit the issue
Searching Issues
- Use the search form
- Save frequent searches
- Export results as needed
Email Integration
- Reply to issue emails to add comments
- Create issues via email
- Receive notifications on updates
Additional Resources
Conclusion
Deploying Roundup on Klutch.sh gives you a flexible, customizable issue tracking system with automatic builds and persistent storage. Whether tracking software bugs, customer requests, or any other issues, Roundup’s Python-based customization allows you to adapt it to your exact needs while Klutch.sh handles the infrastructure.