A Cataclysm Games project repository and management platform.
https://hub01-shop.srgnis.com/
Hub01 Shop is a web application designed to serve as a centralized repository for Cataclysm Games projects. It provides a platform for project creators to share their work and for players to discover, download, and manage projects for their CDDA game.
- Project Repository: Browse, search, and download projects for Cataclysm Games
- Version Management: Track different versions of projects with changelog support
- User Accounts: Register, login, and manage your profile
- Project Management: Create and manage your mod projects
- Dependency Tracking: Manage mod dependencies to ensure compatibility
- Tagging System: Organize projects with tags for better discoverability
- REST API: Access project data programmatically
- API Documentation: https://hub01-shop.srgnis.com/docs/api/
- API Specification: OpenAPI
- API Client: Hub01 Shop API libs
- API Tools: Hub01 Shop API Tools
For questions, feedback, or support, please visit our GitHub Discussions forum: https://github.com/SrGnis/hub01-shop/discussions
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to contribute to this project.
The application is built with:
The project development environment is containerized using Docker. But you can also run it as a regular Laravel application.
# Clone the repository
git clone --recursive https://github.com/srgnis/hub01-shop.git
# Navigate to the project directory
cd hub01-shop
# Copy the environment file
cp .env.example .env
# Start the Docker containers
./scripts/dcdev up -d
# Run migrations and seed the database
./scripts/cr app php artisan migrate:fresh --seedThe application will be available at http://localhost:8000.
The development environment is containerized in the [docker-compose-dev.yml] and consists of the following Docker services:
- app: PHP-Apache service running the Laravel application (port 8000)
- db: MariaDB database
- redis: Redis cache server
- adminer: Database management tool (port 8080)
- mailpit: Development mail server (port 8025)
The project includes helper scripts to simplify common tasks:
./scripts/dcdev: Run Docker Compose commands with the dev configuration
./scripts/dcdev up -d./scripts/cr: Run commands in the docker containers
./scripts/cr php artisan tinkerThe application follows a standard Laravel + Livewire structure:
- Models: Representations of the database entities like Project, ProjectType, ProjectVersion, ProjectFile, etc.
- Found in the
src/app/Modelsdirectory
- Found in the
- Services: Business logic layer
- Found in the
src/app/Servicesdirectory
- Found in the
- Livewire Components: For reactive UI components
- Found in the
src/app/Livewiredirectory andsrc/resources/views/livewire
- Found in the
- Controllers: Handle HTTP requests and responses
- Found in the
src/app/Http/Controllersdirectory
- Found in the
This project uses GitHub Actions for continuous integration and deployment:
- Docker Image Build: Automatically builds and publishes the application Docker image to GitHub Container Registry (GHCR) when changes are pushed to the main branch.
- Image Tags: Images are tagged with:
latest: Always points to the most recent build from the main branchsha-<commit>: Specific commit hash for precise version tracking- Branch name: When building from a specific branch
For production deployment, copy the docker-compose.yml and the .env.example file to your production environment, adjust the configuration as needed and specify the desired version of the container image.
You can pull the container image from GitHub Container Registry:
docker pull ghcr.io/srgnis/hub01-shop:latestTo use a specific version:
docker pull ghcr.io/srgnis/hub01-shop:sha-<commit_hash>Additional documentation can be found in the docs/ directory:
- Database Schema: Entity relationship diagrams
- GitHub Actions: CI/CD workflow details
This project contains LLM generated code.
This project is open-sourced software licensed under the MIT license.
