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
- Clone this repository
- Install Poetry
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file foundry_instance_manager-0.1.32.tar.gz.
File metadata
- Download URL: foundry_instance_manager-0.1.32.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8619a6ba1d00291d1c989515afc1a979118954ab5f0646b25440d062e501e6fb
|
|
| MD5 |
3789cefb4eb6975946c5dfde75adadae
|
|
| BLAKE2b-256 |
bd9b3b99a273d89a22e836f56cfd2f1ac297d0c89d0f98b7bd442836ceb0dcae
|
File details
Details for the file foundry_instance_manager-0.1.32-py3-none-any.whl.
File metadata
- Download URL: foundry_instance_manager-0.1.32-py3-none-any.whl
- Upload date:
- Size: 28.7 kB
- Tags: Python 3
- 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34814fa4c41c1f1c60137ac1330655e9bbeeae3570f6ecfc67d0138d942eed5a
|
|
| MD5 |
d5a84b07e0902b94a5b7d12b56bdd012
|
|
| BLAKE2b-256 |
86117945a977c243518da5fc800cc0d3bb9a32462fcf78534635e48b1afb1c7d
|