Skip to content

Tools and Access

This page lists all tools, services, and access credentials you'll need as an Arctyk ITSM team member.


Required Tools

Development Tools

Git & GitHub

  • Purpose: Version control and code collaboration
  • Access: Public (for contributors) or Team access (for maintainers)
  • Setup:
    # Configure Git
    git config --global user.name "Your Name"
    git config --global user.email "your.email@example.com"
    
    # Set up SSH key for GitHub
    ssh-keygen -t ed25519 -C "your.email@example.com"
    # Add to GitHub: Settings → SSH and GPG keys
    

Docker Desktop

Python 3.11+


Code Editors

Alternative Editors

  • PyCharm Professional
  • Sublime Text with Python plugins
  • Vim/Neovim with LSP

Database Tools

  • Purpose: PostgreSQL database client
  • Download: https://dbeaver.io/
  • Connection:
  • Host: localhost
  • Port: 5432
  • Database: arctyk_db
  • User: arctyk_user
  • Password: (from your .env file)

Alternative Tools

  • pgAdmin
  • DataGrip
  • psql command-line client

API Testing

Postman or Insomnia


Communication Platforms

Discord

  • Purpose: Real-time team communication
  • Access: Request invite link from maintainers
  • Channels:
  • #general - General discussion
  • #development - Development questions
  • #pull-requests - PR notifications
  • #releases - Release announcements

GitHub Discussions


CI/CD and Hosting

GitHub Actions

  • Purpose: Continuous Integration/Deployment
  • Access: Automatically runs on PR
  • Workflows:
  • Linting and tests
  • Build verification
  • Deployment (main branch)

DigitalOcean (Production)

  • Purpose: Production hosting
  • Access: Maintainers only
  • Contact: Request from team lead if needed

Documentation Tools

MkDocs

  • Purpose: Documentation site generation
  • Install:
    pip install mkdocs mkdocs-material
    
  • Usage:
    # Serve docs locally
    mkdocs serve
    
    # Build docs
    mkdocs build
    

Access Levels

Contributor (Everyone)

  • ✅ Read access to repository
  • ✅ Fork and create pull requests
  • ✅ Participate in discussions
  • ✅ View documentation
  • ❌ Direct push to main branch
  • ❌ Production access

Maintainer

  • ✅ All contributor permissions
  • ✅ Review and merge pull requests
  • ✅ Triage issues
  • ✅ Create releases
  • ✅ Access to CI/CD secrets
  • ✅ Production deployment access
  • ✅ Admin access to repository

Getting Access

For Contributors

  1. GitHub Account: Create if you don't have one
  2. Fork Repository: Fork the main repository to your account
  3. Clone Locally: Clone your fork for development
  4. Discord (Optional): Request invite link to join discussions

For New Maintainers

Contact the team lead for: - [ ] GitHub team membership - [ ] Discord admin access - [ ] CI/CD secrets access - [ ] Production server SSH keys - [ ] Database backup access


Optional Tools

Pre-commit Hooks

# Install pre-commit
pip install pre-commit

# Install hooks
pre-commit install

# Run manually
pre-commit run --all-files

Coverage.py

# Install coverage
pip install coverage

# Run tests with coverage
coverage run --source='.' manage.py test
coverage report
coverage html

Django Debug Toolbar

  • Already configured in development settings
  • Provides detailed request/query information
  • Access panel on the right side of pages when DEBUG=True

Security Best Practices

SSH Keys

  • Use Ed25519 keys for GitHub
  • Add passphrase for extra security
  • Never share private keys

Environment Variables

  • Never commit .env files
  • Use separate credentials for dev/prod
  • Rotate credentials regularly

API Tokens

  • Store in environment variables
  • Use minimal required permissions
  • Rotate tokens if compromised

Troubleshooting Access Issues

Can't Push to Repository

  • Verify you're pushing to your fork, not the main repo
  • Check SSH key is added to GitHub
  • Ensure you have write access (for maintainers)

Docker Permission Denied

# Linux: Add user to docker group
sudo usermod -aG docker $USER
# Log out and back in

Database Connection Fails

  • Ensure Docker containers are running
  • Check .env database configuration
  • Verify port 5432 isn't in use

Keeping Tools Updated

Regular Updates

# Update Docker images
docker-compose pull

# Update Python dependencies
pip install --upgrade -r requirements.txt

# Update VS Code extensions
# Check Extensions → Check for Updates

Version Requirements

  • Python: 3.11+
  • Docker: 20.10+
  • Node.js: 18+ (for SCSS builds)
  • PostgreSQL: 15+

Getting Help

If you need access to something not listed here:

  • Ask in Discord #development channel
  • Email the team lead
  • Open a GitHub discussion
  • Message a maintainer directly

Next Steps

Once you have all tools set up:

  1. Set up your development environment
  2. Make your first contribution
  3. Join the Discord community
  4. Introduce yourself to the team!