Version Control¶
Kaizen Network uses Git with MineCICD for automated configuration deployment.
MineCICD¶
MineCICD is a Minecraft plugin that syncs server configuration files with a Git repository.
How It Works¶
graph LR
Dev[Developer] -->|git push| Repo[Git Repository]
Repo -->|webhook| MineCICD[MineCICD Plugin]
MineCICD -->|apply| Server[Server Files]
Gitignore Pattern¶
MineCICD uses an inverted gitignore approach:
- Ignore everything by default (
*) - Whitelist specific files to track (
!/path/to/file)
# Ignore all files
*
!*/
# Whitelist config files
!/plugins/Essentials/config.yml
!/plugins/LuckPerms/config.yml
!/plugins/Skript/scripts/*.sk
This ensures only intentionally tracked configs are synced.
Repository Structure¶
server_configs/
├── proxy/ # Velocity proxy configs
├── lobby1/ # Lobby 1 configs
├── lobby2/ # Lobby 2 configs
├── survivalmix/ # Survival Mix configs
│ ├── .gitignore # Whitelist for this server
│ ├── plugins/
│ └── ...
├── tycoon/ # Tycoon configs
├── creative/ # Creative configs
├── quake/ # Quake configs
└── limbo/ # Limbo configs
Workflows¶
Making Config Changes¶
- Edit locally or directly on server
- Test changes in-game
- Commit to repository:
- MineCICD automatically applies to server
Adding New File to Tracking¶
- Add to
.gitignorewhitelist: - Commit and push
Sensitive Files¶
Never commit credentials
Database passwords, API keys, and secrets should use environment variables or be excluded from Git.
Files that should NOT be tracked:
- plugins/*/playerdata/
- Files containing passwords
- Large binary files
- World data
Branches¶
| Branch | Purpose |
|---|---|
main |
Production configs |
dev |
Testing changes |