Copyright (c) 2025 Maxime DAUPHIN, Maël HOUPLINE, Julien TAP. All rights reserved. Licensed under the MIT License. See LICENSE file for details.
Root repository of project "PolyHUB" for ET4 web project.
This repository contains only installation, configuration and documentation files.
Front-end and back-end code are in separate repositories:
- Front-end: https://github.com/MES4game/POLYHUB-WEB-FRONT
- Back-end: https://github.com/MES4game/POLYHUB-WEB-BACK
.github: GitHub-related files (workflows, issue templates, etc.).gitignore: files to ignore by gitLICENSE: license file (MIT)polyhub-web-db_schema.svg: database schema diagramrapport.md: project reportREADME.md: this filesite.conf.template: nginx configuration template
-
NO need to clone any repository
-
prerequisites:
- Docker
- Docker Compose
- Nginx (optional, only if you want to use it as reverse proxy)
-
images:
-
steps to install:
- open a terminal and navigate to the folder where you want to download the
docker-compose.ymlfile - you can find an example of
docker-compose.ymlhere- you can copy it with
curl -o docker-compose.yml https://raw.githubusercontent.com/MES4game/POLYHUB-WEB/main/docker-compose.yml
- you can copy it with
- you also need to copy
example.envto.env- you can get it with
curl -o .env https://raw.githubusercontent.com/MES4game/POLYHUB-WEB/main/example.env
- you can get it with
- edit
.envto your needs - you also need to copy
example.config.jsonin the folder you mount for the volume used in container with the nameconfig.json- you can get it with
curl -o /path/to/mounted-front/config.json https://raw.githubusercontent.com/MES4game/POLYHUB-WEB/main/example.config.json
- you can get it with
- edit
config.jsonto your needs - run
docker compose up -d --force-recreateto start the containers - (optional) if you want to use Nginx as reverse proxy, copy
site.conf.templateaspolyhub.example.com.confto your Nginx configuration folder and edit it to your needs- you can get it with
curl -o /etc/nginx/sites-available/polyhub.example.com.conf https://raw.githubusercontent.com/MES4game/POLYHUB-WEB/main/site.conf.template - create a symlink to
sites-enabled(e.g.ln -s /etc/nginx/sites-available/polyhub.example.com.conf /etc/nginx/sites-enabled/) - restart Nginx to apply the changes (e.g.
systemctl restart nginx)
- you can get it with
- open a terminal and navigate to the folder where you want to download the
-
main: production branchdev: development branch (all features must be merged here first)dev-<id>: task branches (must be created fromdevand merged back todev)
-
<type>(<scope>): <comment><type>: type of the commit (must be one of the following, can be combined with|):feat: new featurefix: bug fixdocs: documentation only changesstyle: changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)refactor: code change that neither fixes a bug nor adds a featureperf: code change that improves performancetest: adding missing tests or correcting existing testschore: changes to the build process or auxiliary tools and libraries such as documentation generationmerge: merges branches
<scope>: name of the branch<comment>: short description of the commit
- example:
feat(dev-42): add login feature - example:
feat|perf|style(dev-21): add last event feature, improve performance for render and fix styles of first section - every commit must be signed with a GPG/SSH key
- make reasonable sized commits (do not commit everything in one commit, but do not make too many small commits either)
- write meaningful commit messages (do not use
fixorupdateas comment, be more specific)
-
- title:
merge(<source> -> <target>): <comment><source>: source branch<target>: target branch<comment>: short description of the PR
- description
- optional: follow the template provided by GitHub
- if you did not use the template, at least provide a description of the changes
- for the merge commit, let GitHub generate it automatically (do not edit it)
- reviewers: at least one reviewer must be assigned (preferably the repository admin or the service manager)
- In case of a release PR (from
devtomain):- title:
r/<version> - <name><version>: version of the release (must follow semantic versioning, e.g.1.2.3)<name>: name of the release
- description:
- follow the template provided by GitHub
- if you did not use the template, at least provide a description of the changes
- you can omit the "Changelog" section
- do not use "---" in the PR description, it breaks the formatting, only let the one by default
- a link to compare the changes since last release will be automatically generated by GitHub in the release description
- title:
- title:
git status: check the status of the repositorygit fetch origin: fetch changes from remotegit checkout <branch>: switch to an existing branchgit pull origin: pull changes from remote branchgit rebase origin/<branch>: rebase current branch onto remote branch, if you want to get latest changes of another branch (must be done aftergit fetch origin)git add .: stage all changesgit add <file>...: stage specific file (can use glob patterns)git commit -m "<commit message>": commit staged changes with a messagegit push origin: push changes to remote branchgit stash -u: stash changes (to be reapplied later, for example when switching branch)git stash pop: reapply stashed changes
-
-
Default branch:mainReleases:Enable release immutability: true
Features:Wiki: falseIssues: falseSponsorships: falsePreserve this repository: trueDiscussions: falseProjects: false
Pull Requests:Allow merge commits Loading: trueDefault commit message: Pull request title and description
Allow squash merging: falseAllow rebase merging: falseAlways suggest updating pull request branches: trueAllow auto-merge: falseAutomatically delete head branches: false
Pushes:Limit how many branches and tags can be updated in a single push: 2
-
no branches:{ "name": "no branches", "target": "branch", "source_type": "Repository", "enforcement": "active", "conditions": { "ref_name": { "exclude": [ "refs/heads/main", "refs/heads/dev", "refs/heads/dev-*" ], "include": [ "~ALL" ] } }, "rules": [ { "type": "deletion" }, { "type": "non_fast_forward" }, { "type": "update" }, { "type": "creation" } ], "bypass_actors": [] }protected branches:{ "name": "protected branches", "target": "branch", "source_type": "Repository", "enforcement": "active", "conditions": { "ref_name": { "exclude": [], "include": [ "refs/heads/main", "refs/heads/dev" ] } }, "rules": [ { "type": "deletion" }, { "type": "non_fast_forward" }, { "type": "creation" }, { "type": "pull_request", "parameters": { "required_approving_review_count": 1, "dismiss_stale_reviews_on_push": true, "require_code_owner_review": true, "require_last_push_approval": false, "required_review_thread_resolution": true, "automatic_copilot_code_review_enabled": false, "allowed_merge_methods": [ "merge" ] } } ], "bypass_actors": [] }dev branches:{ "name": "task branches", "target": "branch", "source_type": "Repository", "enforcement": "active", "conditions": { "ref_name": { "exclude": [], "include": [ "refs/heads/dev-*" ] } }, "rules": [ { "type": "deletion" }, { "type": "non_fast_forward" }, { "type": "required_signatures" } ], "bypass_actors": [] }no tags:{ "name": "no tags", "target": "tag", "source_type": "Repository", "enforcement": "active", "conditions": { "ref_name": { "exclude": [ "refs/tags/v*.*.*" ], "include": [ "~ALL" ] } }, "rules": [ { "type": "deletion" }, { "type": "non_fast_forward" }, { "type": "creation" }, { "type": "update" } ], "bypass_actors": [] }
-
Actions permissions: Allow all actions and reusable workflowsRequire actions to be pinned to a full-length commit SHA: falseApproval for running fork pull request workflows from contributors: Require approval for all external contributorsWorkflow permissions: Read repository contents and packages permissionsAllow GitHub Actions to create and approve pull requests: false
-
- none
-
Dependency graph: EnableAutomatic dependency submission: Enabled
Dependabot:Dependabot alerts: Enable
Protection rules:Check runs failure threshold:Security alert severity level: High or higherStandard alert severity level: Only errors
Secret Protection: EnablePush protection: Enable
-