Codey (Forgejo)¶
Servala provides fully managed Codey instances, powered by Forgejo, a self-hosted Git platform for code hosting, collaboration, and CI/CD. Codey is brought to you by codey.ch.
Full service description
For features, plans, and pricing, see Codey on servala.com.
Availability¶
Codey is available on selected cloud providers and zones. See the availability matrix for the current list.
Supported versions¶
Codey only supports the latest available Forgejo version. See Forgejo Website under Forgejo Releases for more details.
Version upgrade mechanics are described in Maintenance & Upgrades.
Architecture¶
Codey is deployed as a fully self-contained Forgejo instance:
- No external database server: Codey uses an embedded SQLite database with Write-Ahead Logging (WAL) enabled, rather than an external database cluster (such as PostgreSQL or MariaDB).
- In-memory processes and embedded queues: session management and caching run in memory (
twoqueuecache adapter), while background task queues use an embedded LevelDB engine. There is no external dependency on caching systems such as Redis or Valkey. - Unified persistent volume: all persistent state (Git repositories, Git LFS objects, SQLite database files, and package registry data) resides on a single dedicated storage volume (
/data), which is protected by automated platform backups.
Compute plan and sizing¶
Compute resources (CPU, memory, and storage) are selected through the compute plan when you provision the instance. The available plans and their sizes are shown directly in the portal, so they are not duplicated here. See Compute Plans & SLAs for how plans and service levels work.
Configuration options¶
Service-specific parameters available when provisioning, in addition to the compute plan. The provisioning form groups them into the sections below. Most options map directly to a Forgejo configuration setting, described in detail in the Forgejo configuration cheat sheet.
Service Configuration¶
- FQDN: the domain name for accessing your Codey instance. By default Codey is
reachable under a managed subdomain (for example
myapp.app.codey.ch). You can use the Advanced option below the FQDN field to point your own custom domain at the instance instead. - Service storage size: size of available storage for Git repositories, packages, action artefacts, etc.
Access & Registration¶
- Disable User Registration: fully disable self-registration of users on Forgejo. Enabled by default: new accounts are then created by an administrator or through OAuth2.
- OAuth2 Client Auto Registration: automatically create user accounts in Forgejo for new OAuth2 users.
- SSH Access to Git: access Git repositories over SSH in addition to HTTPS. See Git access over SSH for the SSH endpoint details.
- Hide Users Page in Explore: hide the list of users from unauthenticated visitors browsing the explore section.
Repositories & Organizations¶
- Max Repository Creation Limit: maximum number of repositories per user and per
organization. Use
-1for unlimited. - Disabled Repository Units: comma-separated list of repository units to disable
globally, for example
repo.issues,repo.wiki. Allowed values:repo.issues,repo.ext_issues,repo.pulls,repo.wiki,repo.ext_wiki,repo.projects,repo.packages,repo.actions. - Disable Forks: disable repository forking.
- Disable Stars: disable the stars feature.
- Restrict Organization Creation to Admins: disallow regular (non-admin) users from creating organizations.
Features & Appearance¶
- Enable Actions: enable the CI/CD Actions feature for repositories. Enabled by default.
- Landing Page: the page unauthenticated visitors land on. Accepts
home,explore,organizations,login, or any URL such as/org/repoorhttps://example.com. Defaults tohome.
Backup¶
These options control the automated backups of your instance.
- Backup Schedule: cron expression for when the backup runs, for example
0 22 * * *for daily at 22:00. Each position accepts*, a single number, or*/nonly: lists and ranges are not supported. Leave empty to let the platform pick a random time between 22:00 and 04:00. - Keep Daily Backups: number of daily backups to retain (minimum
1). - Keep Weekly Backups: number of weekly backups to retain. Leave empty to keep none.
- Keep Monthly Backups: number of monthly backups to retain. Leave empty to keep none.
API & CORS¶
Cross-Origin Resource Sharing (CORS) controls whether browsers on other domains may call the API of your instance. Leave it disabled unless you run a web application that talks to Codey from a different origin.
- Enable CORS headers: allow browsers on other domains to call the API of this instance.
- CORS Domains: list of requesting origins that are allowed, for example
https://*.example.com. - CORS Headers: additional headers that are permitted in requests.
System defaults & technical reference¶
The following platform defaults and operational parameters are managed automatically by Servala:
Storage & Git features¶
- Git LFS: Git Large File Storage is enabled out of the box. Large files tracked with LFS are stored directly on the instance storage volume.
- Code & issue search: full-text repository code indexing and issue search (powered by an embedded Bleve indexer) are enabled by default.
- Archive cleanup: temporary zip and tar repository archives generated for downloads are automatically purged after two hours.
Privacy & security¶
- Offline mode: enabled by default. Codey does not make third-party CDN or external avatar (Gravatar) requests. All assets are served locally to ensure data privacy.
- Default user status: new user accounts default to restricted mode (
DEFAULT_USER_IS_RESTRICTED). Restricted users cannot see public repositories or other users unless explicitly added as collaborators or team members. - SSH key policy: minimum secure key length verification is enforced. Deprecated or short SSH keys are rejected.
Email & notifications¶
- Transactional email: outbound emails for notifications, invitations, and password resets are pre-configured through the platform mailer.
- Email confirmation: email verification is required on new user registration when self-registration is enabled.
Limits & technical specifications¶
Service-specific operational limits and technical parameters:
| Parameter | Value / Default | Description |
|---|---|---|
| Database engine | SQLite (WAL mode) | Embedded database on persistent volume |
| Session & cache | In-memory (twoqueue) |
Local memory management with no external cache service |
| Queue backend | LevelDB | Embedded disk-based task queue |
| Container package limit | 2 GiB | Maximum allowed layer size in the container package registry |
| Repository migration timeout | 30 minutes (1800s) | Maximum execution time when importing or migrating a Git repository |
| Archive retention | 2 hours | Retention time for generated repository download archives |
Accessing your instance¶
After provisioning, your Codey instance is available at the FQDN configured during setup. Retrieve the admin credentials from the instance detail page in the portal.
- Open the FQDN in your browser.
- Log in with the admin credentials from the portal.
- Create repositories, teams, and user accounts as needed.
The forgejo_admin password cannot be changed
The password of the forgejo_admin account is managed by the system and
currently cannot be changed. If you change it inside Forgejo, it is reset to
the system-managed default. Use the admin credentials shown on the instance
detail page in the portal.
Git access over SSH¶
When SSH Access to Git is enabled, repositories can be cloned and pushed over SSH in addition to HTTPS. The SSH endpoint (hostname and port) is shown on the instance detail page in the portal.
How the SSH endpoint works¶
All Codey instances in a cluster share a single SSH gateway. The platform
pre-configures a stable gateway hostname, for example
ssh.cls-rma1-503b.servala.com, and this hostname cannot be changed. Each
instance gets its own unique port on the gateway, and connections are routed to
the instance through that port.
Always use the hostname and port shown on your instance detail page.
Using your own domain for SSH¶
The gateway hostname is stable, so you can use your own domain in your Git
remote URLs: create a CNAME record pointing your domain at the gateway
hostname, for example:
The port is not affected by this: you still connect on the unique port assigned to your instance. This is separate from the HTTP(S) custom domain of the instance, which is configured during provisioning.
Capability matrix¶
How the managed-service features apply to Codey:
| Capability | This service | How it works |
|---|---|---|
| Backups & Restore | Automated backups of database and Git repositories, schedule and retention configurable, direct bucket access with restic | Backups & Restore |
| Monitoring | Metrics and alerting | Monitoring |
| Maintenance & Upgrades | Patches and version upgrades | Maintenance & Upgrades |
| Scaling | Compute and storage | Scaling |
| Logs | Instance logs in the portal | Logs |
| Security | TLS in transit | Security |
| Service Levels | Availability tiers | Service Levels |
Limitations & known issues¶
- Forgejo Actions (CI/CD) runners are not available yet