Monorepo for https://hexxy.media/.
Hex Casting addons are welcome to freely use {modid}.hexxy.media for their GitHub Pages web books or any other (reasonable) purpose.
To request a custom subdomain, open an issue using the "Custom subdomain" template.
https://maven.hexxy.media is a public Maven repository run by me (object-Object, or leftsquarebracket on Discord) and hosted on Azure Artifacts. Hex Casting community members are welcome to use it for publishing projects related to Hex Casting.
To request publishing permissions, first read the publishing guide, then open an issue using the "Maven publishing" template.
- .github/workflows/deploy.yml: Deployment workflow for hexxy.media. Runs on every push to main.
- codedeploy/: Files in this directory are uploaded to S3 and deployed to the VPS. Some files are generated and added to this directory by the deployment workflow.
- appspec.yml: AppSpec file for CodeDeploy. Configures where to copy files and what hooks to execute during a deployment.
- pm2.config.js: PM2 config file for the API.
- src/azure/: Bicep configs for Azure resources.
- main.bicepparam: Data-driven OIDC configuration to allow community members to publish packages to https://maven.hexxy.media via GitHub Actions.
- src/hexxy_media/: Root directory for the
hexxy_mediaPython package.- api/: FastAPI source code for https://hexxy.media/api/v0/docs.
- common/: Dependency-free data and utilities for other packages.
- data.py: Primary source of truth for subdomains. This is used to generate a sitemap, DNS records, and the landing page at https://hexxy.media.
- web/: Jinja-based static site generator for the landing page at https://hexxy.media.
- src/infra/aws_cdk/: AWS CDK application for hexxy.media. This deploys the CodeDeploy application and IAM role that are used for deploying the API and landing page to the VPS that hosts them.
- src/infra/cdktf/: CDKTF (CDK for Terraform) application for hexxy.media. This deploys DNS records and dynamic redirects to Cloudflare for the hexxy.media domain.
python3.11 -m venv venv
source venv/bin/activate
pip install -e .[dev]
npm iCreate a file called .env:
DB_HOST=localhost
DB_PORT=...
DB_USER=hexxy_media
DB_PASS=...
DB_NAME=hexxy_media
DB_PORT=63333
Terminal 1:
ssh -L 63333:localhost:5432 object@objectobject.ca -NTerminal 2:
source venv/bin/activate
uvicorn --reload --port 5000 hexxy_media.api.app:appnodemonDeployments are performed automatically on push via GitHub Actions, AWS CDK, CDKTF, and CodeDeploy.