diff --git a/.copier-answers.yaml b/.copier-answers.yaml index 84a4c66..04b5374 100644 --- a/.copier-answers.yaml +++ b/.copier-answers.yaml @@ -2,13 +2,13 @@ _commit: 0.5.0 _src_path: gh:radio-aktywne/template-app-liquidsoap accountname: radio-aktywne -appname: fusion +appname: emifuse description: Audio streaming with Liquidsoap ๐Ÿงผ docs: true -docsurl: https://radio-aktywne.github.io/app-fusion -envprefix: FUSION -imagename: apps/fusion +docsurl: https://radio-aktywne.github.io/app-emifuse +envprefix: EMIFUSE +imagename: apps/emifuse registry: true releases: true -reponame: app-fusion -repourl: https://github.com/radio-aktywne/app-fusion +reponame: app-emifuse +repourl: https://github.com/radio-aktywne/app-emifuse diff --git a/.github/workflows/registry.yaml b/.github/workflows/registry.yaml index b9dc750..5cb0195 100644 --- a/.github/workflows/registry.yaml +++ b/.github/workflows/registry.yaml @@ -39,9 +39,9 @@ jobs: push: true # Slashes are here to make the string multiline and avoid using spaces tags: "\ - ghcr.io/radio-aktywne/apps/fusion\ + ghcr.io/radio-aktywne/apps/emifuse\ :latest,\ - ghcr.io/radio-aktywne/apps/fusion\ + ghcr.io/radio-aktywne/apps/emifuse\ :${{ github.event.release.tag_name }}" # Cache Docker layers between builds cache-from: type=gha,scope=${{ github.workflow }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e65007..e89a878 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,13 +11,13 @@ The whole development environment will be running inside a container. If you open the project in `Visual Studio Code`, you should be prompted to reopen the project in a `Dev Container`. You can also click -[here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/radio-aktywne/app-fusion) +[here](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/radio-aktywne/app-emifuse) or on the badge below to tell `Visual Studio Code` to open the project in a `Dev Container`.
-[![Open in Dev Container](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/radio-aktywne/app-fusion) +[![Open in Dev Container](https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/radio-aktywne/app-emifuse)
@@ -100,7 +100,7 @@ Here are the most common ones, using `Task`: Linting is automatically run on every pull request and push to the `main` branch. You can find the `GitHub Actions` workflow that does this in -[`.github/workflows/lint.yaml`](https://github.com/radio-aktywne/app-fusion/blob/main/.github/workflows/lint.yaml). +[`.github/workflows/lint.yaml`](https://github.com/radio-aktywne/app-emifuse/blob/main/.github/workflows/lint.yaml). If you use the `Dev Container` setup, you will have the `Trunk` extension installed in `Visual Studio Code`. @@ -133,13 +133,13 @@ Every time you create a new release on `GitHub`, a `GitHub Actions` workflow will automatically build and publish a new `Docker` image to the `GitHub Container Registry`. You can find the `GitHub Actions` workflow that does this in -[`.github/workflows/registry.yaml`](https://github.com/radio-aktywne/app-fusion/blob/main/.github/workflows/registry.yaml). +[`.github/workflows/registry.yaml`](https://github.com/radio-aktywne/app-emifuse/blob/main/.github/workflows/registry.yaml). ## ๐Ÿ“„ Docs This project uses [`Docusaurus`](https://docusaurus.io) to generate documentation. The documentation is hosted on `GitHub Pages` and can be found -[here](https://radio-aktywne.github.io/app-fusion). +[here](https://radio-aktywne.github.io/app-emifuse). All the documentation files are located in the `docs` directory. To build and serve the documentation locally, @@ -154,4 +154,4 @@ This will start a local server that will serve the documentation. The documentation is automatically built and deployed to `GitHub Pages` whenever a commit is pushed to the `main` branch. You can find the `GitHub Actions` workflow that does this in -[`.github/workflows/docs.yaml`](https://github.com/radio-aktywne/app-fusion/blob/main/.github/workflows/docs.yaml). +[`.github/workflows/docs.yaml`](https://github.com/radio-aktywne/app-emifuse/blob/main/.github/workflows/docs.yaml). diff --git a/README.md b/README.md index 649917a..97ecc50 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ -

fusion app

+

emifuse app

Audio streaming with Liquidsoap ๐Ÿงผ -[![Lint](https://github.com/radio-aktywne/app-fusion/actions/workflows/lint.yaml/badge.svg)](https://github.com/radio-aktywne/app-fusion/actions/workflows/lint.yaml) -[![Image](https://github.com/radio-aktywne/app-fusion/actions/workflows/image.yaml/badge.svg)](https://github.com/radio-aktywne/app-fusion/actions/workflows/image.yaml) -[![Registry](https://github.com/radio-aktywne/app-fusion/actions/workflows/registry.yaml/badge.svg)](https://github.com/radio-aktywne/app-fusion/actions/workflows/registry.yaml) -[![Docs](https://github.com/radio-aktywne/app-fusion/actions/workflows/docs.yaml/badge.svg)](https://github.com/radio-aktywne/app-fusion/actions/workflows/docs.yaml) +[![Lint](https://github.com/radio-aktywne/app-emifuse/actions/workflows/lint.yaml/badge.svg)](https://github.com/radio-aktywne/app-emifuse/actions/workflows/lint.yaml) +[![Image](https://github.com/radio-aktywne/app-emifuse/actions/workflows/image.yaml/badge.svg)](https://github.com/radio-aktywne/app-emifuse/actions/workflows/image.yaml) +[![Registry](https://github.com/radio-aktywne/app-emifuse/actions/workflows/registry.yaml/badge.svg)](https://github.com/radio-aktywne/app-emifuse/actions/workflows/registry.yaml) +[![Docs](https://github.com/radio-aktywne/app-emifuse/actions/workflows/docs.yaml/badge.svg)](https://github.com/radio-aktywne/app-emifuse/actions/workflows/docs.yaml)
@@ -15,16 +15,16 @@ Audio streaming with Liquidsoap ๐Ÿงผ ## ๐Ÿ’ก About -`fusion` is a [`Liquidsoap`](https://www.liquidsoap.info) +`emifuse` is a [`Liquidsoap`](https://www.liquidsoap.info) server that fuses music from playlists and live audio and sends one output stream to broadcast servers. ## ๐Ÿ“„ Further Reading More in-depth documentation can be found -[here](https://radio-aktywne.github.io/app-fusion). +[here](https://radio-aktywne.github.io/app-emifuse). ## ๐Ÿ’ป Development Read more about how to develop the project -[here](https://github.com/radio-aktywne/app-fusion/blob/main/CONTRIBUTING.md). +[here](https://github.com/radio-aktywne/app-emifuse/blob/main/CONTRIBUTING.md). diff --git a/docker-compose.yaml b/docker-compose.yaml index 358eb8f..88943c6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,22 +1,22 @@ services: - fusion: + emifuse: build: context: ./ network: host environment: - - "FUSION__SERVER__SRT__PORT=${FUSION__SERVER__SRT__PORT:-9000}" - - "FUSION__SERVER__HTTP__PORT=${FUSION__SERVER__HTTP__PORT:-9001}" - - "FUSION__STATE__STORE__PATH=${FUSION__STATE__STORE__PATH:-data/state.json}" - - "FUSION__STATE__CACHE__TTL=${FUSION__STATE__CACHE__TTL:-60}" - - "FUSION__EMICAST__ICY__HOST=${FUSION__EMICAST__ICY__HOST:-localhost}" - - "FUSION__EMICAST__ICY__PORT=${FUSION__EMICAST__ICY__PORT:-8000}" - - "FUSION__EMICAST__ICY__USER=${FUSION__EMICAST__ICY__USER:-source}" - - "FUSION__EMICAST__ICY__PASSWORD=${FUSION__EMICAST__ICY__PASSWORD:-password}" - - "FUSION__EMICAST__ICY__MOUNT=${FUSION__EMICAST__ICY__MOUNT:-radio.mp3}" - - "FUSION__EMITUNES__HTTP__SCHEME=${FUSION__EMITUNES__HTTP__SCHEME:-http}" - - "FUSION__EMITUNES__HTTP__HOST=${FUSION__EMITUNES__HTTP__HOST:-localhost}" - - "FUSION__EMITUNES__HTTP__PORT=${FUSION__EMITUNES__HTTP__PORT:-42000}" - - "FUSION__EMITUNES__HTTP__PATH=${FUSION__EMITUNES__HTTP__PATH:-}" + - "EMIFUSE__SERVER__SRT__PORT=${EMIFUSE__SERVER__SRT__PORT:-9000}" + - "EMIFUSE__SERVER__HTTP__PORT=${EMIFUSE__SERVER__HTTP__PORT:-9001}" + - "EMIFUSE__STATE__STORE__PATH=${EMIFUSE__STATE__STORE__PATH:-data/state.json}" + - "EMIFUSE__STATE__CACHE__TTL=${EMIFUSE__STATE__CACHE__TTL:-60}" + - "EMIFUSE__EMICAST__ICY__HOST=${EMIFUSE__EMICAST__ICY__HOST:-localhost}" + - "EMIFUSE__EMICAST__ICY__PORT=${EMIFUSE__EMICAST__ICY__PORT:-8000}" + - "EMIFUSE__EMICAST__ICY__USER=${EMIFUSE__EMICAST__ICY__USER:-source}" + - "EMIFUSE__EMICAST__ICY__PASSWORD=${EMIFUSE__EMICAST__ICY__PASSWORD:-password}" + - "EMIFUSE__EMICAST__ICY__MOUNT=${EMIFUSE__EMICAST__ICY__MOUNT:-radio.mp3}" + - "EMIFUSE__EMITUNES__HTTP__SCHEME=${EMIFUSE__EMITUNES__HTTP__SCHEME:-http}" + - "EMIFUSE__EMITUNES__HTTP__HOST=${EMIFUSE__EMITUNES__HTTP__HOST:-localhost}" + - "EMIFUSE__EMITUNES__HTTP__PORT=${EMIFUSE__EMITUNES__HTTP__PORT:-42000}" + - "EMIFUSE__EMITUNES__HTTP__PATH=${EMIFUSE__EMITUNES__HTTP__PATH:-}" network_mode: host volumes: - data:/app/data/ diff --git a/docs/docs/01-Index.md b/docs/docs/01-Index.md index f82f0b4..9127e58 100644 --- a/docs/docs/01-Index.md +++ b/docs/docs/01-Index.md @@ -3,12 +3,12 @@ slug: / title: Index --- -# fusion app +# emifuse app Audio streaming with Liquidsoap ๐Ÿงผ ## ๐Ÿ’ก About -`fusion` is a [`Liquidsoap`](https://www.liquidsoap.info) +`emifuse` is a [`Liquidsoap`](https://www.liquidsoap.info) server that fuses music from playlists and live audio and sends one output stream to broadcast servers. diff --git a/docs/docs/03-Configuration.md b/docs/docs/03-Configuration.md index 45b9f61..5db0a9a 100644 --- a/docs/docs/03-Configuration.md +++ b/docs/docs/03-Configuration.md @@ -7,42 +7,42 @@ title: Configuration You can configure the app at runtime using various environment variables: -- `FUSION__SERVER__SRT__PORT` +- `EMIFUSE__SERVER__SRT__PORT` port to listen for SRT connections (default: `9000`) -- `FUSION__SERVER__HTTP__PORT` - +- `EMIFUSE__SERVER__HTTP__PORT` - port to listen for HTTP connections (default: `9001`) -- `FUSION__STATE__STORE__PATH` - +- `EMIFUSE__STATE__STORE__PATH` - path to the file to store the state (default: `data/state.json`) -- `FUSION__STATE__CACHE__TTL` - +- `EMIFUSE__STATE__CACHE__TTL` - how long to cache the state in memory in seconds (default: `60`) -- `FUSION__EMICAST__ICY__HOST` - +- `EMIFUSE__EMICAST__ICY__HOST` - host of the ICY API of the emicast service (default: `localhost`) -- `FUSION__EMICAST__ICY__PORT` - +- `EMIFUSE__EMICAST__ICY__PORT` - port of the ICY API of the emicast service (default: `8000`) -- `FUSION__EMICAST__ICY__USER` - +- `EMIFUSE__EMICAST__ICY__USER` - user to authenticate with the ICY API of the emicast service (default: `source`) -- `FUSION__EMICAST__ICY__PASSWORD` - +- `EMIFUSE__EMICAST__ICY__PASSWORD` - password to authenticate with the ICY API of the emicast service (default: `password`) -- `FUSION__EMICAST__ICY__MOUNT` - +- `EMIFUSE__EMICAST__ICY__MOUNT` - mount point of the ICY API of the emicast service to send the audio to (default: `radio.mp3`) -- `FUSION__EMITUNES__HTTP__SCHEME` - +- `EMIFUSE__EMITUNES__HTTP__SCHEME` - scheme of the HTTP API of the emitunes service (default: `http`) -- `FUSION__EMITUNES__HTTP__HOST` - +- `EMIFUSE__EMITUNES__HTTP__HOST` - host of the HTTP API of the emitunes service (default: `localhost`) -- `FUSION__EMITUNES__HTTP__PORT` - +- `EMIFUSE__EMITUNES__HTTP__PORT` - port of the HTTP API of the emitunes service (default: `42000`) -- `FUSION__EMITUNES__HTTP__PATH` - +- `EMIFUSE__EMITUNES__HTTP__PATH` - path of the HTTP API of the emitunes service (default: ``) diff --git a/docs/docusaurus.config.mts b/docs/docusaurus.config.mts index 5c1dcbf..99dfea1 100644 --- a/docs/docusaurus.config.mts +++ b/docs/docusaurus.config.mts @@ -2,10 +2,10 @@ import type * as Preset from "@docusaurus/preset-classic"; import type { Config } from "@docusaurus/types"; import { themes } from "prism-react-renderer"; -const url = new URL("https://radio-aktywne.github.io/app-fusion"); +const url = new URL("https://radio-aktywne.github.io/app-emifuse"); const config: Config = { - title: "fusion app docs", + title: "emifusee app docs", favicon: "favicon.svg?v=1", url: `${url.protocol}//${url.host}`, @@ -41,14 +41,14 @@ const config: Config = { themeConfig: { navbar: { - title: "fusion app docs", + title: "emifusee app docs", logo: { - alt: "fusion app docs logo", + alt: "emifusee app docs logo", src: "logo.svg?v=1", }, items: [ { - href: "https://github.com/radio-aktywne/app-fusion", + href: "https://github.com/radio-aktywne/app-emifusee", position: "right", className: "header-github-link", "aria-label": "GitHub repository", diff --git a/openapi/schema.yaml b/openapi/schema.yaml index ab7b101..c0f7731 100644 --- a/openapi/schema.yaml +++ b/openapi/schema.yaml @@ -1,5 +1,5 @@ info: - title: fusion app + title: emifuse app description: Audio streaming with Liquidsoap ๐Ÿงผ openapi: 3.1.0 servers: diff --git a/src/config/emicast/icy.liq b/src/config/emicast/icy.liq index 497aceb..4ca8a7f 100644 --- a/src/config/emicast/icy.liq +++ b/src/config/emicast/icy.liq @@ -1,14 +1,14 @@ let config.emicast.icy = {} let config.emicast.icy.host = - utils.env.safeget(default="localhost", "FUSION__EMICAST__ICY__HOST") + utils.env.safeget(default="localhost", "EMIFUSE__EMICAST__ICY__HOST") let config.emicast.icy.port = utils.parse.int( - utils.env.safeget(default="8000", "FUSION__EMICAST__ICY__PORT") + utils.env.safeget(default="8000", "EMIFUSE__EMICAST__ICY__PORT") ) let config.emicast.icy.user = - utils.env.safeget(default="source", "FUSION__EMICAST__ICY__USER") + utils.env.safeget(default="source", "EMIFUSE__EMICAST__ICY__USER") let config.emicast.icy.password = - utils.env.safeget(default="password", "FUSION__EMICAST__ICY__PASSWORD") + utils.env.safeget(default="password", "EMIFUSE__EMICAST__ICY__PASSWORD") let config.emicast.icy.mount = - utils.env.safeget(default="radio.mp3", "FUSION__EMICAST__ICY__MOUNT") + utils.env.safeget(default="radio.mp3", "EMIFUSE__EMICAST__ICY__MOUNT") diff --git a/src/config/emitunes/http.liq b/src/config/emitunes/http.liq index ec5a5bc..979b193 100644 --- a/src/config/emitunes/http.liq +++ b/src/config/emitunes/http.liq @@ -1,14 +1,14 @@ let config.emitunes.http = {} let config.emitunes.http.scheme = - utils.env.safeget(default="http", "FUSION__EMITUNES__HTTP__SCHEME") + utils.env.safeget(default="http", "EMIFUSE__EMITUNES__HTTP__SCHEME") let config.emitunes.http.host = - utils.env.safeget(default="localhost", "FUSION__EMITUNES__HTTP__HOST") + utils.env.safeget(default="localhost", "EMIFUSE__EMITUNES__HTTP__HOST") let config.emitunes.http.port = utils.parse.oint( - utils.env.safeget(default="42000", "FUSION__EMITUNES__HTTP__PORT") + utils.env.safeget(default="42000", "EMIFUSE__EMITUNES__HTTP__PORT") ) -let config.emitunes.http.path = utils.env.get("FUSION__EMITUNES__HTTP__PATH") +let config.emitunes.http.path = utils.env.get("EMIFUSE__EMITUNES__HTTP__PATH") let config.emitunes.http.url = utils.url.build( scheme=config.emitunes.http.scheme, diff --git a/src/config/server/http.liq b/src/config/server/http.liq index 200e7ad..4f3e52f 100644 --- a/src/config/server/http.liq +++ b/src/config/server/http.liq @@ -2,5 +2,5 @@ let config.server.http = {} let config.server.http.port = utils.parse.int( - utils.env.safeget(default="9001", "FUSION__SERVER__HTTP__PORT") + utils.env.safeget(default="9001", "EMIFUSE__SERVER__HTTP__PORT") ) diff --git a/src/config/server/srt.liq b/src/config/server/srt.liq index 2305b62..43a9261 100644 --- a/src/config/server/srt.liq +++ b/src/config/server/srt.liq @@ -2,5 +2,5 @@ let config.server.srt = {} let config.server.srt.port = utils.parse.int( - utils.env.safeget(default="9000", "FUSION__SERVER__SRT__PORT") + utils.env.safeget(default="9000", "EMIFUSE__SERVER__SRT__PORT") ) diff --git a/src/config/state/cache.liq b/src/config/state/cache.liq index 55ad901..58eb158 100644 --- a/src/config/state/cache.liq +++ b/src/config/state/cache.liq @@ -2,5 +2,5 @@ let config.state.cache = {} let config.state.cache.ttl = utils.parse.float( - utils.env.safeget(default="60", "FUSION__STATE__CACHE__TTL") + utils.env.safeget(default="60", "EMIFUSE__STATE__CACHE__TTL") ) diff --git a/src/config/state/store.liq b/src/config/state/store.liq index d648e7f..48146f8 100644 --- a/src/config/state/store.liq +++ b/src/config/state/store.liq @@ -1,4 +1,4 @@ let config.state.store = {} let config.state.store.path = - utils.env.safeget(default="data/state.json", "FUSION__STATE__STORE__PATH") + utils.env.safeget(default="data/state.json", "EMIFUSE__STATE__STORE__PATH")