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 nowSOFT_SERVE_INITIAL_ADMIN_KEYS
.SOFT_SERVE_KEY_PATH
is nowSOFT_SERVE_SSH_KEY_PATH
.SOFT_SERVE_REPO_PATH
is replaced withSOFT_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 nowSOFT_SERVE_SSH_LISTEN_ADDR
.SOFT_SERVE_HOST
andSOFT_SERVE_PORT
are now combined intoSOFT_SERVE_SSH_PUBLIC_URL
. This should be in the form ofssh://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
Thoughts? Questions? We love hearing from you. Feel free to reach out on Twitter, The Fediverse, or on Discord.