mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-17 21:15:32 +09:00
feat(self-host): add an overlay that turns off bundled seaweedfs (#3041)
This commit is contained in:
1 parent
e98b77a54a
commit
f9108f24ce
7 files changed
+65
-12
No files matched your search
@@ -463,7 +463,7 @@ Keep persistent storage and the bundled `noeviction` policy to protect deletion
|
||||
|
||||
## Object storage
|
||||
|
||||
Every uploaded file lands in an S3-compatible object store, which the stack provides with SeaweedFS. `FLUXER_S3_ACCESS_KEY_ID` and `FLUXER_S3_SECRET_ACCESS_KEY` are required. The rest are optional.
|
||||
Every uploaded file lands in an S3-compatible object store, which the stack provides with SeaweedFS. `FLUXER_S3_ACCESS_KEY_ID` and `FLUXER_S3_SECRET_ACCESS_KEY` are required. The rest are optional. [Run a data store outside the stack](/operator/upgrading/#run-a-data-store-outside-the-stack) has the overlay that stops the bundled SeaweedFS once the stack points at another store.
|
||||
|
||||
#### `FLUXER_S3_ENDPOINT`
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@ powershell -ExecutionPolicy Bypass -File .\install.ps1 -Domain chat.example.com
|
||||
|
||||
The run prints one line per phase and ends with the URL to open.
|
||||
|
||||
`~/fluxer` then holds `docker-compose.yml`, `docker-compose.proxy.yml`, `tunnel.compose.yml`, `Caddyfile` and `.env.example`, plus a `.env` readable only by you. Every value that ships as `CHANGE_ME` in `.env.example` is a fresh random value. Every command from here on runs in that directory.
|
||||
`~/fluxer` then holds `docker-compose.yml`, `docker-compose.proxy.yml`, `tunnel.compose.yml`, `external-object-store.compose.yml`, `Caddyfile` and `.env.example`, plus a `.env` readable only by you. Every value that ships as `CHANGE_ME` in `.env.example` is a fresh random value. Every command from here on runs in that directory.
|
||||
|
||||
### Serving on another port
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ An upgrade moves an instance to a newer release. `install.sh --update` does all
|
||||
|
||||
| Requirement | Value |
|
||||
| --- | --- |
|
||||
| Working directory | The one holding `.env`, `docker-compose.yml`, `docker-compose.proxy.yml`, `tunnel.compose.yml` and `Caddyfile` |
|
||||
| Working directory | The one holding `.env` and the stack files |
|
||||
| Compose commands | Behind your own reverse proxy, set `COMPOSE_FILE` in `.env` once and every command picks up the overlay |
|
||||
| Free disk | Room for one database dump, one copy of the uploads, and the new images beside the old ones |
|
||||
| Downtime | A minute or two for the recreate, plus however long the uploads copy takes with the stack stopped |
|
||||
@@ -79,7 +79,7 @@ Read the [Linux and macOS installer](https://fluxer.dev/install.sh) or [Windows
|
||||
|
||||
## Keep a local compose change
|
||||
|
||||
An upgrade replaces the stack files, including direct edits to `docker-compose.yml`, `docker-compose.proxy.yml`, `tunnel.compose.yml` or the `Caddyfile`. Use `--dry-run` to see which files will change.
|
||||
An upgrade replaces the stack files, including direct edits to `docker-compose.yml`, `docker-compose.proxy.yml`, `tunnel.compose.yml`, `external-object-store.compose.yml` or the `Caddyfile`. Use `--dry-run` to see which files will change.
|
||||
|
||||
The supported way to hold a local choice is a separate file, listed in `COMPOSE_FILE` in `.env`:
|
||||
|
||||
@@ -251,7 +251,23 @@ FLUXER_S3_FORCE_PATH_STYLE=false
|
||||
|
||||
`FLUXER_KV_URL`, `FLUXER_NATS_URL`, `FLUXER_SEARCH_URL` and `FLUXER_LIVEKIT_INTERNAL_URL` move the other bundled services the same way, and `FLUXER_NATS_JETSTREAM_URL` and `FLUXER_SVC_NATS_URL` follow `FLUXER_NATS_URL` when they are not set on their own.
|
||||
|
||||
Pointing the stack elsewhere leaves the bundled service defined and running with nothing reading it. Take it out with an override file listed in `COMPOSE_FILE`, which [Keep a local compose change](#keep-a-local-compose-change) describes, rather than by editing `docker-compose.yml`, which the Place step replaces on every upgrade.
|
||||
Pointing the stack elsewhere leaves the bundled service defined and running with nothing reading it. The object store has a shipped overlay for that. `external-object-store.compose.yml` keeps `seaweedfs` and `seaweedfs-init` from starting, and `api`, `worker` and `media-proxy` stop waiting for `seaweedfs-init`. Add it to `COMPOSE_FILE` in `.env`, after any other overlay:
|
||||
|
||||
```ini
|
||||
COMPOSE_FILE=docker-compose.yml:external-object-store.compose.yml
|
||||
```
|
||||
|
||||
Behind a reverse proxy the line is `docker-compose.yml:docker-compose.proxy.yml:external-object-store.compose.yml`. The overlay needs Compose 2.24.4 or newer. An upgrade refreshes it with the other stack files, skips the uploads copy and does not wait for `seaweedfs-init`.
|
||||
|
||||
Compose leaves containers that already exist in place, so remove the two old ones once after the switch:
|
||||
|
||||
```bash
|
||||
docker compose rm -sf seaweedfs seaweedfs-init
|
||||
```
|
||||
|
||||
The `seaweedfs-data` volume stays until you delete it. Copy its objects to the new store before you delete it.
|
||||
|
||||
The other bundled services have no shipped overlay. Take one out with an override file listed in `COMPOSE_FILE`, which [Keep a local compose change](#keep-a-local-compose-change) describes, rather than by editing `docker-compose.yml`, which the Place step replaces on every upgrade.
|
||||
|
||||
The installer backs up only the bundled database and object store. Arrange separate backups for external stores before upgrading, and keep them with the release's backup record.
|
||||
|
||||
|
||||
Reference in new issue
Block a user