{"id":24612656,"url":"https://github.com/mayo-dayo/app","last_synced_at":"2025-03-18T16:29:40.063Z","repository":{"id":272844144,"uuid":"917319605","full_name":"mayo-dayo/app","owner":"mayo-dayo","description":"A self-hostable, web-based audio streaming app.","archived":false,"fork":false,"pushed_at":"2025-03-14T10:57:31.000Z","size":1376,"stargazers_count":16,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"0.4","last_synced_at":"2025-03-14T11:33:47.523Z","etag":null,"topics":["audio-player","self-hostable","web"],"latest_commit_sha":null,"homepage":"https://mayo.clumsy.fish","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mayo-dayo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-15T19:01:58.000Z","updated_at":"2025-03-14T10:57:30.000Z","dependencies_parsed_at":"2025-02-10T02:24:43.454Z","dependency_job_id":"8e0eae71-8484-46a8-8de6-a829f5bdb20b","html_url":"https://github.com/mayo-dayo/app","commit_stats":null,"previous_names":["mayo-dayo/app"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayo-dayo%2Fapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayo-dayo%2Fapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayo-dayo%2Fapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mayo-dayo%2Fapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mayo-dayo","download_url":"https://codeload.github.com/mayo-dayo/app/tar.gz/refs/heads/0.4","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244259418,"owners_count":20424544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-player","self-hostable","web"],"created_at":"2025-01-24T20:23:52.123Z","updated_at":"2025-03-18T16:29:40.056Z","avatar_url":"https://github.com/mayo-dayo.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mayo メヨ\n\nA self-hostable, web-based audio streaming app.\n\n- [Demo](https://mayo.clumsy.fish)\n- [Installation](#installation)\n- [Configuration](#configuration)\n\n#### Features\n\n- Small and fast client, 42.4 kB of brotli-compressed JavaScript.\n- Supports full-text search server-side and client-side.\n- Does not require internet connection, music can be downloaded from the server and played offline.\n\n#### Roadmap\n\n- [ ] Playlists\n- [ ] Instant mix\n- [ ] Better tooling\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://github.com/user-attachments/assets/f83e802b-63e3-46d0-add0-52c5d4427b60\" alt=\"\" /\u003e\n\u003c/p\u003e\n\n# Installation\n\nReleases of Mayo are published on Github Container Registry.\n\nObviously, this means that we are going to use Docker.\n\nSince we are going to use Docker, you must have Docker installed on your system.\n\nhttps://docs.docker.com/engine/install/\n\nLuckily, this is the hardest part of the installation process, because you won't have to dirty your hands by touching Docker directly.\n\n## Creating a Docker container\n\nAs I said, you don't have to touch Docker directly.\n\nInstead, you can download our CLI, which is designed to do all the dirtly work.\n\nAt this step you can configure the server port, whether or not authentication is required, and, optionally, TLS.\n\n```sh\n# Step 1: Download our CLI utility. It will deal with Docker so you don't have to.\ncurl -LO https://github.com/mayo-dayo/manage/releases/latest/download/manage\n\n# Step 2: Make it executable.\nchmod +x manage\n\n# Step 3: Run the `create` command. This will prompt you to enter some things, and spin up a Docker container.\n./manage create\n```\n\nTo verify the server has been created, you can use another CLI command:\n\n```sh\n# List all Mayo instances on the system (you can create multiple).\n./manage ls\n```\n\n## Creating an invite\n\nIn Mayo, in order to create a user account, a so-called invite is required.\n\nInvite determines what permissions, if any, the user will have after creating their account.\n\nYou can limit the number of times a particular invite can be used.\n\nAn invite can be created using our CLI utility:\n\n```sh\n./manage invite create\n```\n\nNote: if you receive an error, most likely you just created your server and the database is not yet initialized. To initialize the database, visit the `/sign-in` page and try to sign in with whatever credentials. You will receive an error that the username or the password is incorrect, but this will cause the server to initialize the database.\n\n# Configuration\n\nThis is the documentation for how to configure the server without the CLI, but I recommend using the CLI.\n\n### Authentication\n\nBy default, users are not required to authenticate to be able to access the server. Unauthenticated users cannot have permissions and therefore can only use features that do not require permissions, i.e. browsing and streaming audio. This is useful if your server is intended to be public.\n\nTo enforce authentication, `MAYO_AUTHENTICATION` must be set to `required`, in which case the users will be required to authenticate before being able to browse and stream audio.\n\n### HTTP server\n\nTo change the default HTTP server port, set one of `PORT`, `BUN_PORT` or `NODE_PORT` to your desired port.\n\nThe default port is `3000`.\n\nTo cause the HTTP server to use TLS, both of the following must be set:\n\n- `MAYO_TLS_CRT` - a PEM string containing your certificate.\n- `MAYO_TLS_KEY` - a PEM string containing your private key.\n\n### Persistent data\n\nThe server needs a place to store the data that needs to be persistent, such as the database that keeps track of your users and content, and the audio data, such as thumbnails and transcoded audio files suitable for streaming.\n\nThus, you must set `MAYO_DATA_PATH` to the path to a filesystem directory that the server can use for this purpose.\n\nYou are **required** to set this variable in order to use the server. There is no default value.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayo-dayo%2Fapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmayo-dayo%2Fapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmayo-dayo%2Fapp/lists"}