Project Infrastructure
What's to improve
- Encourage Tow to transfer VCMI.eu to GANDI so it's can be also renewed without access.
- Centralized way to post news about game updates to all social media.
- Verify VCMI.eu domain name expiration date with Tow
- Verify VCMI.download domain name expiration date with SXX
- Verify Google Apps (G Suite) status with Tow
Services and accounts
Infrastructure
| Service | Details | Owner | Administrators | Notes |
|---|---|---|---|---|
| GitHub | Code hosting, bug tracker, pull requests, website hosting | - | Tow, AVS, Ivan, Warmonger, SXX | - |
| VCMI.eu domain name | Main domain for services | Tow | - | Renewal date unknown |
| VCMI.download domain name | Secondary domain name for downloads | SXX | - | Paid until November 2026. Registered on GANDI; can be renewed by anyone without account access |
| Hetzner | Hosting sponsor for all our self-hosted services | - | Ivan | - |
| CloudFlare | DNS & CDN for our web services | - | SXX, Ivan | All our web services are behind CloudFlare and use Cloudflare SSL certificates |
| Weblate | Game translations | - | Ivan | Hosts translations for VCMI itself (not including mods & website). Uses free "Gratis" plan |
| Google Play Console | VCMI Android App | SXX | Warmonger, AVS, Ivan, Fay | - |
| Google Apps (G Suite) | Email for vcmi.eu domain | - | Tow, SXX | Limited to 5 users; 500 emails/day limit per account. Includes: admin email (service registration), "noreply" (Wiki/Bug Tracker), "forum" (Forums authentication). Likely dead. Verify with Tow |
| Launchpad PPA | Ubuntu package repository | Mantas Kriaučiūnas | Ivan, SXX, AVS | Contains daily builds and latest releases PPA's for Ubuntu |
| Sonar Cloud | Code analysis | - | Shares credentials with Github | Integrated into Github pull requests |
| Discord Team | Discord app holder | Ivan | Laserlicht, dydzio, Warmonger | Holds ownership of Discord VCMI app that is used to display rich presence when people are playing VCMI |
| DigitalOcean | Former hosting sponsor for all our self-hosted services | - | SXX, Warmonger, Ivan, AVS, Tow | - |
| Snapcraft Dashboard | Snap package distribution | - | SXX | Abandoned in favor of Flatpaks and PPA |
| Coverity Scan | Code analysis | - | SXX, Warmonger, AVS | Abandoned in favor of Sonar Cloud |
| OpenHub | Code statistics | - | Tow | - |
| Docker Hub | Container registry | - | SXX | Abandoned and never used? |
| GitLab | Code repository | - | SXX | Reserve account, not used |
| BitBucket | Code repository | - | SXX | Reserve account, not used |
Note: "Owner" refers to services that require one (and only one) account to have special superuser-like status, potentially - with legal and/or biling information. If service has no such requirement, this field is left blank.
When possible at least two active core developers must have access to them in case of emergency.
Communities with page managed by VCMI Team
| Service Name | Owner | Administrators | Notes |
|---|---|---|---|
| Discord | dydzio | Ivan, OriginMD, Warmonger | Main communication platform |
| Facebook page | — | SXX, Warmonger | Active |
| — | SXX | Abandoned in favor of general H3 subreddits | |
| Twitter account | — | SXX | Abandoned, User access via TweetDeck |
| VK / VKontakte page | SXX | AVS | Abandoned |
| Steam group | SXX | Dydzio | Abandoned |
| ModDB entry | — | SXX | Abandoned |
| Slack team | vmarkovtsev | SXX, Warmonger, AVS... | Abandoned in favor of Discord |
| Trello team | — | SXX | Abandoned |
Heroes 3 communities with VCMI Team presence
| Service Name | Active team members | Notes |
|---|---|---|
| VCMI thread on Heroes Community | Warmonger, Ivan, dydzio... | Very low player activity |
| Heroes 3 subreddit | Ivan, dydzio... | VCMI-related questions are rather common |
| HoMM subreddit | Ivan, dydzio... | Way less active than Heroes 3 subreddit, but sometimes posts about VCMI do appear |
Project Servers Configuration
This section dedicated to explain specific configurations of our servers for anyone who might need to improve it in future.
VPS configuration
All our services are currently hosted by Hetzner. Login is via public key, currently granted to:
- Ivan Savenko
| VPS | Specifications | Services |
|---|---|---|
vcmi-lobby |
4 Gb / 2 CPU / 40 Gb / €4 (+20%) | Multiplayer lobby (lobby.vcmi.eu or beholder.vcmi.eu - deprecated) as well as API endpoint |
vcmi-web |
8 Gb / 4 CPU / 80 Gb / €6.5 (+20%) + €5.72 | All our web-based services not related to lobby |
Notes:
vcmi-webruns Ubuntu 26.04vcmi-lobbyruns Ubuntu 24.04, can be upgraded when we need to deploy new lobby- VPS with deployed and tested services have backups enabled (+20% costs)
- In addition, we have separate 100 Gb volume for builds (€5.72 / month), currently attached to
vcmi-web
Rules to stick to
- SSH authentication by public key only.
- No one except core developers should ever know real server IPs.
- VPS hostname should never be valid host. Otherwise it's exposed in reverse DNS.
Domain names/
| Domain | Content | Hosted on | Notes |
|---|---|---|---|
| vcmi.eu | Main page redirect | CNAME | No content, redirects to real main page |
| download.vcmi.eu | Public downloads & daily builds | vcmi-web |
- |
| upload.vcmi.eu | Domain name for uploading daily builds from Github | vcmi-web |
No http services |
| beholder.vcmi.eu | Multiplayer lobby | vcmi-lobby |
No http services. Used for VCMI 1.7.3 lobby and older. Deprecated in favor of lobby |
| lobby.vcmi.eu | Multiplayer lobby | vcmi-lobby |
No http services |
| api.vcmi.eu | Multiplayer lobby API endpoint | vcmi-lobby |
nginx acts as proxy to provide https wrapper for http-only REST API |
| forum.vcmi.eu | Discourse forum | vcmi-web |
- |
| bugs.vcmi.eu | Bug tracker | vcmi-web |
Redirects to Github Issues |
| slack.vcmi.eu | Slack invite page | vcmi-web |
Redirects to main page |
| weblate.vcmi.eu | Weblate translation service | vcmi-web |
- |
| wiki.vcmi.eu | Wiki | vcmi-web |
Redirects to main page |
| vcmi.download | Main page redirect | CNAME | No content, redirects to main page |
| builds.vcmi.download | Public downloads | vcmi-web |
Redirects to download.vcmi.eu |
Self-hosted services
Currently we have following services deployed:
Potential addition for the future:
- Conan Artifactory (full-fledged artifactory is likely too resource-heavy, we can consider low-end conan server instead)
- Crash reporter tool, such as GlitchTip (Tested, not functional enough) or Sentry (Self-hosted option is too resources-heavy, but they offer hosting for open-source)
- (long-term) Expanded multiplayer lobby with cheat-proof game hosting (likely on a separate, isolated VPS to prevent performance issues)
Web Hosting
For all web services we use Nginx, including websites that run on standalone servers. This allows to easily migrate more services onto another server that already has some services, and use nginx reverse proxy to host all such services on same 443 port.
For certificates all services use Cloudflare Origin certificates. These certificates are issued for free in Cloudflare web UI, have expiration period of 10 years (oldest VCMI certificate will expire in 2032), but can only be used by services that are located behind Cloudflare, which all VCMI services do. Client-facing certificates are managed and automatically updated by Cloudflare.
Configuration files
See scripts directory that contains most of customized configuration files used on our servers. For obvious reasons, sensitive parts that include password and other non-public data are excluded for it