Hello guys,
I have a very old version of the software running but this weekend i started to migrate everything to a new server (i tried Debian Bookworm but two services refused to start so i installed a fresh Debian Bullseye).
I downloaded the latest version and ran the installer. Copied the music files and the postgresql db. Did the migration, started the services (they started all nicely), ran certbot, configured nginx and went to the website. The website appeared with https which was a good thing but after logging in i got the “oops” message. I presume it must be some rights problem.
This is the legacy log:
2023-06-19T23:55:25+02:00 ERR (3): [CORSHelper.php:14 - enableCrossOriginRequests()] - request origin 'https://djs.ternatseradio.be' is not in the configured 'allowed_cors_origins' 'https://djs.ternatseradio.be:8080'
2023-06-19T23:55:25+02:00 NOTICE (5): Trying to get property 'id' of non-object
2023-06-19T23:55:25+02:00 ERR (3): [ErrorController.php:28 - errorAction()] - Forbidden
2023-06-19T23:55:25+02:00 ERR (3): [ErrorController.php:29 - errorAction()] - #0 /usr/share/libretime/legacy/application/controllers/LoginController.php(24): CORSHelper::enableCrossOriginRequests()
#1 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Action.php(516): LoginController->indexAction()
#2 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch()
#3 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch()
#4 /usr/share/libretime/legacy/vendor/zf1s/zend-application/library/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#5 /usr/share/libretime/legacy/vendor/zf1s/zend-application/library/Zend/Application.php(391): Zend_Application_Bootstrap_Bootstrap->run()
#6 /usr/share/libretime/legacy/application/airtime-boot.php(77): Zend_Application->run()
#7 /usr/share/libretime/legacy/public/index.php(56): require_once('/usr/share/libr...')
#8 {main}
2023-06-19T23:55:25+02:00 ERR (3): [ErrorController.php:62 - errorAction()] - An internal application error has occurred.: Zend_Controller_Action_Exception: Forbidden in /usr/share/libretime/legacy/application/common/CORSHelper.php:17
Stack trace:
#0 /usr/share/libretime/legacy/application/controllers/LoginController.php(24): CORSHelper::enableCrossOriginRequests()
#1 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Action.php(516): LoginController->indexAction()
#2 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch()
#3 /usr/share/libretime/legacy/vendor/zf1s/zend-controller/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch()
#4 /usr/share/libretime/legacy/vendor/zf1s/zend-application/library/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#5 /usr/share/libretime/legacy/vendor/zf1s/zend-application/library/Zend/Application.php(391): Zend_Application_Bootstrap_Bootstrap->run()
#6 /usr/share/libretime/legacy/application/airtime-boot.php(77): Zend_Application->run()
#7 /usr/share/libretime/legacy/public/index.php(56): require_once('/usr/share/libr...')
#8 {main}
and this is my config.yml
# See https://libretime.org/docs/admin-manual/setup/configuration/
general:
# The public url.
# > this field is REQUIRED
public_url: https://djs.ternatseradio.be:8080
# The internal API authentication key.
# > this field is REQUIRED
api_key: Pyv0OTONvp6WdQtBwfJy5q5AJgexH45r
# The Django API secret key. If not defined, the value of [general.api_key] will be
# used as fallback.
# > this field will be REQUIRED starting with LibreTime 4.0.0
secret_key: W0bCnGrd20K0QYeIsjUYeq1OPu0NWG8V
# List of origins allowed to access resources on the server, the public url
# origin is automatically included.
# > default is []
allowed_cors_origins: []
# The server timezone, should be a lookup key in the IANA time zone database,
# for example Europe/Berlin.
# > default is UTC
timezone: Europe/Brussels
# How many hours ahead Playout should cache scheduled media files.
# > default is 1
cache_ahead_hours: 1
# Authentication adaptor to use for the legacy service, specify a class like
# LibreTime_Auth_Adaptor_FreeIpa to replace the built-in adaptor.
# > default is local
auth: local
storage:
# Path of the storage directory.
# > default is /srv/libretime
path: /srv/libretime
database:
# The hostname of the PostgreSQL server.
# > default is localhost
host: localhost
# The port of the PostgreSQL server.
# > default is 5432
port: 5432
# The name of the PostgreSQL database.
# > default is libretime
name: libretime
# The username of the PostgreSQL user.
# > default is libretime
user: libretime
# The password of the PostgreSQL user.
# > default is libretime
password: TQ4rwgdzrLJWffG25bVi9mrHaQYOKPDQ
rabbitmq:
# The hostname of the RabbitMQ server.
# > default is localhost
host: localhost
# The port of the RabbitMQ server.
# > default is 5672
port: 5672
# The virtual host of RabbitMQ server.
# > default is /libretime
vhost: /libretime
# The username of the RabbitMQ user.
# > default is libretime
user: libretime
# The password of the RabbitMQ user.
# > default is libretime
password: rLbraZftztWkfFIJ4p0VmPac8O7vK4QZ
playout:
# Liquidsoap connection host.
# > default is localhost
liquidsoap_host: localhost
# Liquidsoap connection port.
# > default is 1234
liquidsoap_port: 1234
# The format for recordings.
# > must be one of (ogg, mp3)
# > default is ogg
record_file_format: ogg
# The bitrate for recordings.
# > default is 256
record_bitrate: 256
# The samplerate for recordings.
# > default is 44100
record_samplerate: 44100
# The number of channels for recordings.
# > default is 2
record_channels: 2
# The sample size for recordings.
# > default is 16
record_sample_size: 16
liquidsoap:
# Liquidsoap server listen address.
# > default is 127.0.0.1
server_listen_address: "127.0.0.1"
# Liquidsoap server listen port.
# > default is 1234
server_listen_port: 1234
# Input harbor listen address.
# > default is ["0.0.0.0"]
harbor_listen_address: ["0.0.0.0"]
# Input harbor tls certificate path.
harbor_ssl_certificate:
# Input harbor tls certificate private key path.
harbor_ssl_private_key:
# Input harbor tls certificate password.
harbor_ssl_password:
stream:
# Inputs sources.
inputs:
# Main harbor input.
main:
# Harbor input public url. If not defined, the value will be generated from
# the [general.public_url] hostname, the input port and mount.
public_url:
# Mount point for the main harbor input.
# > default is main
mount: main
# Listen port for the main harbor input.
# > default is 8001
port: 8001
# Whether the input harbor is secured with the tls certificate.
# > default is false
secure: false
# Show harbor input.
show:
# Harbor input public url. If not defined, the value will be generated from
# the [general.public_url] hostname, the input port and mount.
public_url:
# Mount point for the show harbor input.
# > default is show
mount: show
# Listen port for the show harbor input.
# > default is 8002
port: 8002
# Whether the input harbor is secured with the tls certificate.
# > default is false
secure: false
# Output streams.
outputs:
# Default icecast output
# This can be reused to define multiple outputs without duplicating data
.default_icecast_output: &default_icecast_output
host: localhost
port: 8000
source_password: jR7XwgFRDsIi3rV8TYSGu8PRQN6BUPWz
admin_password: GnpZ7sdE0rKqHXgNEmqRM0BNLE5igbYG
name: LibreTime!
description: LibreTime Radio!
website: https://libretime.org
genre: various
# Icecast output streams.
# > max items is 3
icecast:
# The default Icecast output stream
- <<: *default_icecast_output
enabled: true
public_url:
mount: main
audio:
format: ogg
bitrate: 256
# You can define extra outputs by reusing the default output using a yaml anchor
- <<: *default_icecast_output
enabled: false
mount: main-low
audio:
format: ogg
bitrate: 128
- # Whether the output is enabled.
# > default is false
enabled: false
# Output public url, If not defined, the value will be generated from
# the [general.public_url] hostname, the output port and mount.
public_url:
# Icecast server host.
# > default is localhost
host: localhost
# Icecast server port.
# > default is 8000
port: 8000
# Icecast server mount point.
# > this field is REQUIRED
mount: main
# Icecast source user.
# > default is source
source_user: source
# Icecast source password.
# > this field is REQUIRED
source_password: hackme
# Icecast admin user.
# > default is admin
admin_user: admin
# Icecast admin password. If not defined, statistics will not be collected.
admin_password: hackme
# Icecast output audio.
audio:
# Icecast output audio format.
# > must be one of (aac, mp3, ogg, opus)
# > this field is REQUIRED
format: ogg
# Icecast output audio bitrate.
# > must be one of (32, 48, 64, 96, 128, 160, 192, 224, 256, 320)
# > this field is REQUIRED
bitrate: 256
# format=ogg only field: Embed metadata (track title, artist, and show name)
# in the output stream. Some bugged players will disconnect from the stream
# after every songs when playing ogg streams that have metadata information
# enabled.
# > default is false
enable_metadata: false
# Icecast stream name.
name: LibreTime!
# Icecast stream description.
description: LibreTime Radio!
# Icecast stream website.
website: https://libretime.org
# Icecast stream genre.
genre: various
# Shoutcast output streams.
# > max items is 1
shoutcast:
- # Whether the output is enabled.
# > default is false
enabled: false
# Output public url. If not defined, the value will be generated from
# the [general.public_url] hostname and the output port.
public_url:
# Shoutcast server host.
# > default is localhost
host: localhost
# Shoutcast server port.
# > default is 8000
port: 8000
# Shoutcast source user.
# > default is source
source_user: source
# Shoutcast source password.
# > this field is REQUIRED
source_password: hackme
# Shoutcast admin user.
# > default is admin
admin_user: admin
# Shoutcast admin password. If not defined, statistics will not be collected.
admin_password: hackme
# Shoutcast output audio.
audio:
# Shoutcast output audio format.
# > must be one of (aac, mp3)
# > this field is REQUIRED
format: mp3
# Shoutcast output audio bitrate.
# > must be one of (32, 48, 64, 96, 128, 160, 192, 224, 256, 320)
# > this field is REQUIRED
bitrate: 256
# Shoutcast stream name.
name: LibreTime!
# Shoutcast stream website.
website: https://libretime.org
# Shoutcast stream genre.
genre: various
# System outputs.
# > max items is 1
system:
- # Whether the output is enabled.
# > default is false
enabled: false
# System output kind.
# > must be one of (alsa, ao, oss, portaudio, pulseaudio)
# > default is alsa
kind: alsa
The daemons aka services:
libretime-analyzer.service loaded active running LibreTime Media Analyzer Service
libretime-api.service loaded active running LibreTime API Service
libretime-liquidsoap.service loaded active running LibreTime Liquidsoap Service
libretime-playout.service loaded active running LibreTime Playout Service
libretime-worker.service loaded active running LibreTime Worker Service
libretime-api.socket loaded active running LibreTime API Socket
libretime.target loaded active active LibreTime Services
In the config files i’ve posted here are not the actual passwords of course.
What can i check?
Any help would be kindly appreciated,
Serge.