Mirror of sanic. Find the original here: https://gitlab.com/XenGi/sanic https://sanic.club.berlin.ccc.de
Go to file
XenGi 53a61181b3 Update README.md
Signed-off-by: XenGi <cccb-git@xengi.de>
2024-01-24 14:37:54 +01:00
.forgejo/workflows add linter to CI 2024-01-24 13:33:26 +01:00
static static: flexbox: treeview.css: use directory unicode symbols 2024-01-23 23:43:08 +01:00
.editorconfig foo 2023-10-24 18:17:36 +02:00
.gitignore remove test cert from repo 2024-01-24 13:35:34 +01:00
architecture.drawio.svg Update architecture.drawio.svg 2023-11-07 20:09:13 +01:00
config.ini stylish readme 2024-01-22 13:10:30 +01:00
Dockerfile add container and go stuff 2024-01-22 12:37:28 +01:00
favicon.xcf add mpd status messages 2023-12-10 21:33:54 +01:00
flake.lock slim down flake 2024-01-24 13:22:22 +01:00
flake.nix add fmt and lint to README 2024-01-24 13:28:54 +01:00
go.mod update go deps 2024-01-23 12:16:08 +01:00
go.sum update go deps 2024-01-23 12:16:08 +01:00
gomod2nix.toml update go deps 2024-01-23 12:16:08 +01:00
LICENSE Initial commit 2023-10-16 17:42:09 +02:00
Makefile add fmt and lint to README 2024-01-24 13:28:54 +01:00
mpd.conf add mpd config 2023-10-18 00:40:17 +02:00
mpd.go gui functions nearly done 2023-12-30 15:02:13 +01:00
NOTES.md update roadmap 2024-01-23 12:16:21 +01:00
README.md Update README.md 2024-01-24 14:37:54 +01:00
server.go moving design to final files 2024-01-20 11:40:13 +01:00

maintained

🦔 sanic

chaos music control inspired by relaxx player

Features

  • mpd web gui
    • search music
    • organize playlists
    • control current playback queue
  • no authentication required to control music playback
  • add playlists from internet radios (*.m3u, *.pls)
  • add music from other sources like youtube (youtube-dl)

Installation

NixOS (flakes)

Example flake setup (untested):

{
  description = "my host";
  inputs ={
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-23.11";
    sanic.url = "git.berlin.ccc.de:cccb/sanic/latest";
  };
  outputs = { self, nixpkgs, sanic }:
  let
    system = "x86_64-linux";
    pkgs = import nixpkgs { inherit system; };
  in
  {
    nixosConfigurations."myhostname".nixpkgs.lib.nixosSystem {
      inherit system;
      modules = [
        sanic.nixosModules.sanic
        {
          sanic = {
            mpd = {
              host = "localhost";
              port = 6600;
            };
            ui = {
              hostname = "[::]";
              port = "443";
              tls = true;
            };
          };
        }
      ];
    };
  };
}

Arch Linux (Manjaro, etc)

Install from the AUR:

yay -S sanic

Debian (Ubuntu, Mint, etc)

tba

Red Hat (Fedora, Rocky Linux, etc)

tba

Windows / macOS

lol! 🤣

🛠️ Development

sanic is developed using Nix, but you can also just use the usual Golang tooling.

Run local MPD instance for testing with make mpd.

Update go depdendencies like this:

go get -u  # or `make update`
go mod tidy  # or `make tidy`
gomod2nix

❄️ w/ Nix

Enter development shell (also has mpc client installed for testing):

nix develop

Build nix flake:

nix build

🐧 w/o Nix

Use these Make targets for convenience:

  • run: Run project
  • build: Compile project
  • tidy: Add missing and remove unused modules
  • verify: Verify dependencies have expected content
  • format: Format go code
  • lint: Run linter (staticcheck)
  • test: Run tests
  • cert: Create https certificate for local testing

🐳 Container

You can run sanic in a container. Use these Make targets for convenience:

  • build-container: Build container image
  • run-container: Run container image

🗺️ Architecture

Architecture


Made with ❤️ and golang logo.