Skip to content

v0.5.0

Compare
Choose a tag to compare
@github-actions github-actions released this 02 May 13:27
· 220 commits to main since this release

Soft Serve v0.5 is here!

This Soft Serve release includes many new features and bug fixes. Now, Soft Serve supports cloning over HTTP(s) and git:// protocols. It can also be used to import Go packages (go-import aware). It also brings preliminary CI/CD support through Git hooks.

Breaking Change

Soft Serve no longer uses a config repository for configuration. Now, the configs are split into 2 parts, server config, and access config.

Configuration environment variables have changed:

  • SOFT_SERVE_INITIAL_ADMIN_KEY is now SOFT_SERVE_INITIAL_ADMIN_KEYS.
  • SOFT_SERVE_KEY_PATH is now SOFT_SERVE_SSH_KEY_PATH.
  • SOFT_SERVE_REPO_PATH is replaced with SOFT_SERVE_DATA_PATH. However, SOFT_SERVE_DATA_PATH now points to the parent directory that holds all Soft Serve data and repositories.
  • SOFT_SERVE_BIND_ADDRESS is now SOFT_SERVE_SSH_LISTEN_ADDR.
  • SOFT_SERVE_HOST and SOFT_SERVE_PORT are now combined into SOFT_SERVE_SSH_PUBLIC_URL. This should be in the form of ssh://HOST[:PORT]

All these environment variables, except SOFT_SERVE_DATA_PATH, can be defined in config.yaml. Defining environment variables settings will override the settings defined in config.yaml.

Migration

You can use soft migrate-config command to migrate the existing (old) config to the new one. First, make sure you define the following environment variables before running the command:

  • SOFT_SERVE_KEY_PATH The path to the server host key.
  • SOFT_SERVE_REPO_PATH The path to the repository store directory.
  • SOFT_SERVE_BIND_ADDRESS The address that the server binds to.

By default, this will produce a new data directory that has the migrated repositories and ssh keys. You can change that using the SOFT_SERVE_DATA_PATH environment variable.

Server Configuration

The default Soft Serve backend uses SQLite to store access configs, users, and repository metadata. Custom backends can be implemented to support the old behavior (using a config repository).

The server config is stored in config.yaml under the data directory.

Access Configuration

Access configuration and users are now managed through the new SSH-based API. Admins can add/remove users using the user command. Use the pubkey command to manage user SSH public keys.

Other access configurations like anon-access and allow-keyless still exist and can be controlled using the settings command. These two access settings control the behavior of users using http(s):// and git:// protocols and anonymous users.

Host your own Soft Serve instance

Check out our new post on hosting your own Soft Serve instance.

Issues

Please report any issues and bugs here.

Changelog

New Features

Bug fixes

Dependency updates

Documentation updates

Other work


The Charm logo

Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.