Skip to content

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 (twoqueue cache 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 -1 for 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/repo or https://example.com. Defaults to home.

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 */n only: 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.

  1. Open the FQDN in your browser.
  2. Log in with the admin credentials from the portal.
  3. 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:

git.example.com.   CNAME   ssh.cls-rma1-503b.servala.com.

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

Further reading