Skip to content

SrGnis/hub01-shop

Repository files navigation

Hub01 Shop

Hub01 Shop

A Cataclysm Games project repository and management platform.

https://hub01-shop.srgnis.com/

About Hub01 Shop

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.

Key Features

  • 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

Support Forum

For questions, feedback, or support, please visit our GitHub Discussions forum: https://github.com/SrGnis/hub01-shop/discussions

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to contribute to this project.

Tech Stack

The application is built with:

Development

The project development environment is containerized using Docker. But you can also run it as a regular Laravel application.

Quick Start

# 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 --seed

The application will be available at http://localhost:8000.

Development Environment

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)

Helper Scripts

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 tinker

Project Structure

The application follows a standard Laravel + Livewire structure:

  • Models: Representations of the database entities like Project, ProjectType, ProjectVersion, ProjectFile, etc.
    • Found in the src/app/Models directory
  • Services: Business logic layer
    • Found in the src/app/Services directory
  • Livewire Components: For reactive UI components
    • Found in the src/app/Livewire directory and src/resources/views/livewire
  • Controllers: Handle HTTP requests and responses
    • Found in the src/app/Http/Controllers directory

CI/CD

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 branch
    • sha-<commit>: Specific commit hash for precise version tracking
    • Branch name: When building from a specific branch

Deployment

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.

Using the Container Image

You can pull the container image from GitHub Container Registry:

docker pull ghcr.io/srgnis/hub01-shop:latest

To use a specific version:

docker pull ghcr.io/srgnis/hub01-shop:sha-<commit_hash>

Documentation

Additional documentation can be found in the docs/ directory:

Disclaimer

This project contains LLM generated code.

License

This project is open-sourced software licensed under the MIT license.

About

A Cataclysm Games project repository and management platform.

Topics

Resources

License

Contributing

Security policy

Stars

8 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors