What I want to improve
There are a few small self-hosting improvements I want to group here so I do
not forget them:
- bundle the default
nginx.conf inside the Frontend image;
- stop requiring a host-side
garage.toml for the default setup;
- improve the installation/update script;
- show the current TypeType version directly in the UI.
nginx.conf
The default nginx configuration is now part of how TypeType works. It handles
the API, WebSockets, SABR, downloads and the component version routes.
Keeping it as an external file makes it possible to update the Docker images
while accidentally keeping an old configuration. This already caused the
remote login WebSocket problem reported in
discussion #122.
I want to include the default configuration directly in the Frontend image and
remove the mount from the official Compose setup.
Custom nginx configurations should still be supported through an explicit
override for people who need one.
garage.toml
Since GARAGE_RPC_SECRET was moved to an environment variable,
garage.toml is now basically generic. This was discussed in
discussion #130.
The default configuration could be created automatically by an init container
and stored in a Docker volume instead of requiring another file next to the
Compose stack.
Existing custom Garage configurations must not be overwritten.
Updates
The current installer can also update an existing stack, but this should be
clearer and safer.
The update flow should:
- keep
.env, secrets, ports and data volumes;
- update the Compose files and scripts, not only the Docker images;
- back up existing configuration before changing anything;
- warn when custom nginx or Garage configuration is detected;
- validate Compose before restarting;
- pull the new images and check that the services are healthy;
- keep a usable rollback path.
This is especially important because docker compose pull alone cannot update
an old Compose file, as seen in
discussion #133.
The manual, script-free installation requested in
issue #111 will remain
supported.
Version in the UI
The current version can already be checked through /api/instance and the
/api/version/* endpoints, but this is not very discoverable.
I want to show the TypeType version and revision directly in the interface,
with the individual Frontend, Server, Token and Downloader versions available
for troubleshooting.
This was also requested after
issue #161.
Done when
- a normal installation no longer needs external
nginx.conf or
garage.toml files;
- custom configurations can still be used intentionally;
- existing instances can update without losing configuration or data;
- the update process checks the resulting Compose stack and service health;
- the current version is visible directly from the UI;
- the self-hosting and maintenance documentation matches the new flow.
And a big thx to @arcoast for taking the time to look into all of this and share these ideas! It genuinely helps me understand what needs to be improved and make TypeType easier for every self-hoster :)
What I want to improve
There are a few small self-hosting improvements I want to group here so I do
not forget them:
nginx.confinside the Frontend image;garage.tomlfor the default setup;nginx.conf
The default nginx configuration is now part of how TypeType works. It handles
the API, WebSockets, SABR, downloads and the component version routes.
Keeping it as an external file makes it possible to update the Docker images
while accidentally keeping an old configuration. This already caused the
remote login WebSocket problem reported in
discussion #122.
I want to include the default configuration directly in the Frontend image and
remove the mount from the official Compose setup.
Custom nginx configurations should still be supported through an explicit
override for people who need one.
garage.toml
Since
GARAGE_RPC_SECRETwas moved to an environment variable,garage.tomlis now basically generic. This was discussed indiscussion #130.
The default configuration could be created automatically by an init container
and stored in a Docker volume instead of requiring another file next to the
Compose stack.
Existing custom Garage configurations must not be overwritten.
Updates
The current installer can also update an existing stack, but this should be
clearer and safer.
The update flow should:
.env, secrets, ports and data volumes;This is especially important because
docker compose pullalone cannot updatean old Compose file, as seen in
discussion #133.
The manual, script-free installation requested in
issue #111 will remain
supported.
Version in the UI
The current version can already be checked through
/api/instanceand the/api/version/*endpoints, but this is not very discoverable.I want to show the TypeType version and revision directly in the interface,
with the individual Frontend, Server, Token and Downloader versions available
for troubleshooting.
This was also requested after
issue #161.
Done when
nginx.conforgarage.tomlfiles;And a big thx to @arcoast for taking the time to look into all of this and share these ideas! It genuinely helps me understand what needs to be improved and make TypeType easier for every self-hoster :)