Skip to main content

A command-line tool for managing Foundry VTT instances

Project description

Foundry Instance Manager

THIS PROJECT IS IN PROGRESS AND NOT READY FOR USE

A CLI tool for managing multiple Docker containers that share the same image but have individual data directories and a shared data directory.

Features

  • Create and manage multiple Docker containers from the same image
  • Each container has its own isolated data directory
  • Shared data directory accessible by all containers
  • Easy-to-use CLI interface
  • Container status monitoring
  • Automated changelog generation
  • Automated version bumping and release workflow
  • Security checks (Bandit, Safety)

Installation

  1. Clone this repository
  2. Install Poetry
  3. Install dependencies:
poetry install

Usage

# Create a new container
poetry run fim create --name my-container --image my-image

# List all containers
poetry run fim list

# Start a container
poetry run fim start --name my-container

# Stop a container
poetry run fim stop --name my-container

# Remove a container
poetry run fim remove --name my-container

Configuration

The tool uses the following directory structure:

  • ./data/shared/ - Shared data directory accessible by all containers
  • ./data/containers/<container-name>/ - Individual container data directories

Requirements

  • Python 3.9+
  • Docker installed and running
  • Poetry

CI/CD Pipeline (GitHub Actions)

This project uses a robust CI/CD pipeline with the following stages:

  • Quality Checks: Linting (flake8, black, isort), type checking (mypy), and unit tests with coverage (pytest, pytest-cov). Coverage is uploaded to Codecov.
  • Security: Bandit for static security analysis and Safety for dependency vulnerability checks.
  • Version Management: Automated version bumping and changelog generation on every push to main.
  • Release: Builds the package, creates a GitHub release, and publishes to PyPI when a new tag is created.

How it works

  • On every push or pull request to main, the pipeline runs quality and security checks.
  • On pushes to main, if all checks pass, the version is bumped, a changelog is generated, and a new tag is created.
  • When a tag is pushed, a release is created and the package is published to PyPI.

Changelog Generation

Changelog is automatically generated using the changelog tool. To manually generate or update the changelog:

poetry run changelog generate-md CHANGELOG.md

Security

  • Run Bandit:
    poetry run bandit -r foundry_instance_manager
    
  • Run Safety:
    poetry run safety check
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foundry_instance_manager-0.1.29.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

foundry_instance_manager-0.1.29-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file foundry_instance_manager-0.1.29.tar.gz.

File metadata

  • Download URL: foundry_instance_manager-0.1.29.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2

File hashes

Hashes for foundry_instance_manager-0.1.29.tar.gz
Algorithm Hash digest
SHA256 8b7e696064d886f94ce3ace2962016d8032010e05b03c258bf0a13374173965e
MD5 bc1308507dca187b0cf9ba589b89951e
BLAKE2b-256 99802e7fe2b59b673e538083ce7248b27b226356f6a0a3f5cf9e2e5d9f9e5da9

See more details on using hashes here.

File details

Details for the file foundry_instance_manager-0.1.29-py3-none-any.whl.

File metadata

File hashes

Hashes for foundry_instance_manager-0.1.29-py3-none-any.whl
Algorithm Hash digest
SHA256 ec4b45ef6c6ac222bac3bd985d487cd40d77c370fe2c8ab4bf6f64de8983308f
MD5 4e79efd747f491dbd2f8286505aa6b18
BLAKE2b-256 0fb2e84bedc5408fe8863e63b79d6ee481203f90de5e7a2ba76e66a3cc97a8a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page