A new interface for LibreTime.
Find a file
2025-06-12 11:12:42 +02:00
.github ci: fix broken link check (#3061) 2024-08-04 11:47:37 +09:00
analyzer chore(main): release 4.2.0 (#3028) 2024-06-22 18:16:49 +02:00
api chore(deps): update dependency uvicorn to >=0.17.6,<0.32.0 (#3081) 2024-09-30 16:32:04 +01:00
api-client chore(main): release 4.2.0 (#3028) 2024-06-22 18:16:49 +02:00
dev fix: changed localhost to 127.0.0.1 2025-02-07 16:12:22 +01:00
docker feat(docker): prod, fix misc 2025-06-05 12:08:15 +02:00
docs docs: update SoundExchange costs (#3070) 2024-08-29 08:57:12 +01:00
installer feat(installer): add the --storage-path flag (#2865) 2024-01-01 14:38:05 +01:00
legacy chore(deps): lock file maintenance (legacy/composer.json) 2024-09-17 09:26:00 +00:00
playout chore: fix linting ignore comments (#3084) 2024-09-30 16:08:23 +01:00
shared chore(main): release 4.2.0 (#3028) 2024-06-22 18:16:49 +02:00
sintonia_webapp@7dc8e160ee Initial commit 2024-10-04 17:40:53 +02:00
tools sintonia docker fix: dev container startup 2025-02-03 15:48:35 +01:00
worker chore(main): release 4.2.0 (#3028) 2024-06-22 18:16:49 +02:00
.codespellignore chore: release 3.2.0 (#2754) 2023-10-16 21:26:59 +02:00
.dockerignore feat: add container setup 2022-09-14 11:09:52 +02:00
.env.dev feat(.env.dev): added missing nginx confi var 2025-03-31 15:28:28 +02:00
.gitattributes Create .gitattributes to ensure proper cloning with Windows Git 2017-04-09 14:41:52 -04:00
.gitignore .gitignore add: avoid double repo commits sintonia_webapp 2025-01-23 13:52:39 +01:00
.gitmodules add: gitsubmodules branch dev and merge strategy 2025-04-02 11:48:03 +02:00
.pre-commit-config.yaml chore(deps): update pre-commit hook adamchainz/django-upgrade to v1.21.0 2024-09-07 18:41:07 +00:00
.vale.ini chore: reenable vale rule after fix (#2965) 2024-03-02 14:15:50 +01:00
CHANGELOG.md chore(main): release 4.2.0 (#3028) 2024-06-22 18:16:49 +02:00
cloud-init.yml feat: rewrite cloud-init config (#2853) 2023-12-29 17:57:59 +01:00
codecov.yml test(worker): setup testing 2022-09-09 14:44:37 +02:00
CONTRIBUTING.md chore: fix CONTRIBUTING symlink again 2023-04-03 12:39:24 +02:00
docker-bake.json ci: use bake file for container build 2023-02-26 20:37:27 +02:00
docker-compose.override.yml fix(docker): restart always 2025-04-03 18:34:30 +02:00
docker-compose.yml feat(docker): prod, fix misc 2025-06-10 13:36:10 +02:00
Dockerfile feat(docker): prod, fix misc 2025-06-12 11:12:42 +02:00
install fix: pin pip version to <24.1 to allow installing pytz (celery) (#3043) 2024-06-22 17:35:30 +02:00
LEGACY.md Add Table of Content to LEGACY file 2021-09-02 20:55:16 +02:00
LICENSE Small update to LICENSE 2021-09-02 16:06:26 +02:00
Makefile build: replace custom release script with release-please (#2817) 2023-12-22 19:19:12 +01:00
pyproject.toml chore: add isort pre-commit hook 2023-02-03 12:38:58 +01:00
README.md feat(docker): prod, fix misc 2025-05-22 14:41:35 +02:00
SECURITY.md docs: move release docs in the release section 2023-04-12 16:50:04 +01:00
Vagrantfile feat(installer)!: change default listen port to 8080 (#2852) 2023-12-29 17:49:07 +01:00

Sintonia

The project involves the development of an application (to be released as open-source) that will handle all aspects of managing a radio station, whether it operates purely online or uses radio wave transmitters.

Link to sintonia_webapp repo.

The application will therefore need to allow for:

  • Managing multiple users with three different types of permissions (administrator, editor, and DJ);
  • Managing the audio file archive (adding, deleting), allowing uploads from remote sources such as individual audio files on other servers or RSS feeds;
  • Adding, modifying, and deleting broadcasts within the schedule, and scheduling (both in advance and in real-time) the playlists within individual episodes of a broadcast;
  • Creating both static and dynamic playlists that can be used within one or more episodes of one or more broadcasts;
  • Managing and scheduling advertisements, both private and governmental;
  • Exporting the history of songs played within a specific time frame;

Development is expected to start from the free and open-source software LibreTime, which will be forked while retaining all playout and backend functionalities.
This will be complemented by a new web application (hereafter referred to as "Sintonia") to replace the original application (hereafter referred to as "Legacy").

This application will replicate the functions of the previous one while integrating new features, providing a more intuitive and simple user experience thanks to a new graphic design agreed upon.

Build and run the dev containers

Ensure docker is installed, and its service is up and running

One can quickly test docker by running:

    docker run hello-world

Clone this repo using the command git clone and the url of this repo.

This repo contains a git submodule sintonia_webapp, it refers to this repo.

Right now the submodule is not properly set up. So open a terminal in the root of this project, sintonia, and run this command:

    git clone ssh://gitea@git.congegni.net:4022/Congegni/sintonia_webapp.git && cd sintonia_webapp && git checkout dev && cp .env.dev .env && cd ..

The folder sintonia_webapp now it's synced with the dev branch (the currently active branch).

Return to the sintonia project folder, run these commands:

# Clean and build
make clean
cp .env.dev .env
DOCKER_BUILDKIT=1 docker compose build

# Setup
make dev-certs
docker compose run --rm legacy make build
docker compose run --rm api libretime-api migrate

Run the following command:

    docker compose -f  docker-compose.yml -f docker-compose.override.yml build && docker compose up -d && docker container restart sintonia-webapp-dev

This command builds the docker containers in dev mode, then it will attempt to start them up.

The sintonia web app is reachable on the port indicated in the env var SINTONIA_LARAVEL_PORT, by default the port is 9876.

So proceed to open a browser, connect to http://127.0.0.1:9876 (if no config or vars were changed).

Usually the user created by default is login: admin password: admin

Prod containers

The prod container for Sintonia is under development, it may be unstable

First of all

HW usage

The stats below refer to the containers without any load and some test data

` docker stats --no-stream

CONTAINER ID   NAME                    CPU %     MEM USAGE / LIMIT     MEM %     NET I/O            BLOCK I/O         PIDS

fdc43da14053   sintonia-postgres-1     0.33%     236.7MiB / 30.95GiB   0.75%     86.4MB / 45.2MB   1.11GB / 906MB    9

74c48a47033c   sintonia-liquidsoap-1   23.00%    78.48MiB / 30.95GiB   0.25%     113MB / 2.61GB    281MB / 0B        12

f97521670581   sintonia-playout-1      0.00%     43.95MiB / 30.95GiB   0.14%     39.9MB / 6.85MB   52.5MB / 0B       2

5c8bf1fe4e61   sintonia-legacy-1       0.01%     64.21MiB / 30.95GiB   0.20%     24.4MB / 24.2MB   136MB / 0B        5

b868aad49ccc   sintonia-nginx-1        0.00%     11.46MiB / 30.95GiB   0.04%     96MB / 110MB      36.4MB / 0B       9

e89bf2b1a732   sintonia-worker-1       0.20%     96.11MiB / 30.95GiB   0.30%     8.93MB / 8.26MB   45.8MB / 2.03MB   4

e18346d6b201   sintonia-analyzer-1     0.02%     32.97MiB / 30.95GiB   0.10%     454kB / 106kB     34.8MB / 0B       3

7341e6559130   sintonia-webapp-dev     0.09%     492.6MiB / 30.95GiB   1.55%     46.3MB / 254MB    742MB / 28.1MB    41

959c88dc8a46   sintonia-api-1          4.39%     121.4MiB / 30.95GiB   0.38%     395kB / 79kB      83.6MB / 0B       4

`

RAM

1177.88MB

Images size

4460.7MB

Reverse proxy configuration

A reverse proxy may be set used to relay all the requests to the internal nginx server.

A sample nginx file can be found at /docker/nginx-host.conf

Support

Coming soon

Contributors

Code Contributors

Sintonia is being developed by Congegni

Financial Contributors

logo Arci Firenze Arci Firenze Aps

License

Coming soon

Coming soon