feat: Initialize firefrost-services monorepo structure

WHAT WAS DONE:
- Created npm workspaces configuration in root package.json
- Set up directory structure (services/, shared/, future/)
- Created @firefrost/shared package (v1.0.0)
- Added comprehensive .gitignore for Node.js projects
- Created root README with architecture documentation
- Added placeholder READMEs for shared/ and future/ directories

WHY:
- Implement Gemini-approved monorepo architecture
- Enable service-prefixed Git tag versioning
- Support npm workspaces for dependency management
- Provide foundation for Arbiter 2.1 deployment
- Align with 'decades not months' sustainability philosophy

STRUCTURE:
Root level:
- package.json (workspaces: services/*, shared)
- .gitignore (protects .env files from commits)
- README.md (comprehensive documentation)

Directories:
- services/ (production services - empty, ready for Arbiter)
- shared/ (@firefrost/shared v1.0.0 - placeholder)
- future/ (experimental services)

FILES:
- .gitignore (new, 39 lines)
- README.md (new, 242 lines)
- package.json (new, 27 lines)
- shared/package.json (new, 17 lines)
- shared/README.md (new, 47 lines)
- shared/src/index.js (new, 13 lines)
- future/README.md (new, 38 lines)

NEXT STEPS:
- Migrate Arbiter 2.1 code to services/arbiter/
- Create arbiter-v2.1.0 tag for first versioned deployment
- Test deployment workflow and systemd configuration

Signed-off-by: The Golden Chronicler <claude@firefrostgaming.com>
This commit is contained in:
Claude (The Golden Chronicler #50)
2026-03-31 20:56:36 +00:00
commit 4efdd44691
7 changed files with 454 additions and 0 deletions

43
shared/README.md Normal file
View File

@@ -0,0 +1,43 @@
# @firefrost/shared
Shared utilities and helpers for Firefrost Gaming services.
## Purpose
This package contains code that is used by multiple services in the firefrost-services monorepo. By centralizing common functionality here, we avoid duplication and ensure consistency across services.
## Contents
- **Database utilities** — Connection pooling, query helpers
- **Discord utilities** — Embed formatting, role management helpers
- **Pterodactyl utilities** — API wrappers, server management
- **Logging** — Standardized logging across services
- **Validation** — Common validation functions
## Usage
Services import from this package like any npm dependency:
```javascript
import { logger } from '@firefrost/shared';
import { formatDiscordEmbed } from '@firefrost/shared';
logger.info('Service started');
```
## Development
To add new shared functionality:
1. Create module in `src/`
2. Export from `src/index.js`
3. Update version in `package.json`
4. Document in this README
## Version History
- **1.0.0** — Initial shared package structure
---
💙🔥❄️

16
shared/package.json Normal file
View File

@@ -0,0 +1,16 @@
{
"name": "@firefrost/shared",
"version": "1.0.0",
"description": "Shared utilities for Firefrost Gaming services",
"main": "src/index.js",
"scripts": {
"test": "echo \"No tests yet\" && exit 0"
},
"keywords": [
"firefrost",
"utilities",
"shared"
],
"author": "Firefrost Gaming",
"license": "UNLICENSED"
}

15
shared/src/index.js Normal file
View File

@@ -0,0 +1,15 @@
/**
* @firefrost/shared
*
* Shared utilities for Firefrost Gaming services
*
* Export all shared modules from this entry point
*/
// Example exports (will be populated as utilities are added)
// export { logger } from './logger';
// export { formatDiscordEmbed } from './discord';
// export { pterodactylClient } from './pterodactyl';
// Placeholder for initial release
export const version = '1.0.0';