Skip to content

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:

Preparing Your Repository

Create a GitHub repository containing your Dockerfile for Roundup deployment.

Repository Structure

roundup-deploy/
├── Dockerfile
├── tracker/
│ └── (tracker configuration)
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM python:3.11-slim
# Install Roundup
RUN pip install roundup
# Create tracker directory
RUN mkdir -p /var/tracker
# Set environment variables
ENV TRACKER_HOME=/var/tracker
ENV TRACKER_WEB=http://0.0.0.0:8080/
# Initialize tracker if not exists
RUN roundup-admin -i /var/tracker install classic || true
# Expose the web interface port
EXPOSE 8080
# Start the web server
CMD ["roundup-server", "-p", "8080", "-n", "0.0.0.0", "tracker=/var/tracker"]

Environment Variables Reference

VariableRequiredDescription
TRACKER_HOMENoPath to tracker data (default: /var/tracker)
ROUNDUP_ADMIN_EMAILNoAdmin email address

Deploying Roundup on Klutch.sh

    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:

    • Select HTTP as the traffic type
    • Set the internal port to 8080

    Attach Persistent Volumes

    Add the following volume:

    Mount PathRecommended SizePurpose
    /var/tracker5 GBTracker 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

  1. Access the tracker at your URL
  2. Log in with the admin account created during installation
  3. Configure tracker settings

Customizing the Schema

  1. Edit the tracker’s schema.py file
  2. Define custom issue types and properties
  3. Restart to apply changes

Configuring Email

  1. Edit config.ini in the tracker directory
  2. Configure SMTP settings for outgoing mail
  3. Set up email gateway for incoming mail

User Management

  1. Navigate to the admin interface
  2. Create user accounts
  3. Assign roles and permissions

Working with Issues

Creating Issues

  1. Click “Create New” in the interface
  2. Fill in issue details
  3. Assign to users via nosy list
  4. Submit the issue

Searching Issues

  1. Use the search form
  2. Save frequent searches
  3. 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.