Any way to transfer LT to new domain?

Hi

I want to transfer an LT set-up to a new physical server and new domain. I created a new install on the destination server, transferred the media files from the source server and copied over the database dump.

Source server: source.example.com
Destination server: destination.example.com

On the destination server, I dropped the database, created a new empty db, and then imported the db dump from the source.

The destination server gives the " Oops! Something went wrong!" error and checking pypo.log shows multiple lines of this:

2021-04-21 20:35:35,296 [api_client] [INFO ] Unable to get Airtime API version number.

2021-04-21 20:35:40,330 [api_client] [INFO ] Unable to get Airtime API version number.

What does that mean? Looks like an SSL cert issue - link.

Of course - I’ve changed the domain…!

Ok, let’s take a look at the db dump:

root@machine:~# grep source airtime_200421.sql
53 \N master_dj_source_connection_url http://source.example.com:8001/master
54 \N live_dj_source_connection_url http://source.example.com:8002/show
s3_host source.example.com string
s4_host source.example.com string
1 https://source.example.com/feeds/station-rss Source Radio podcast sourceusername Powered by LibreTime en \N http://source.example.com/ \N \N \N \N \N clean \N

So, can I manually search-and-replace the db dump and replace reference to the source URL to the destination URL to fix the problem - or is this just not going to be possible? Alternatively, is there any easier way to move LT to a new server and domain?

Many TIA.

1 Like

Can you post the contents in /etc/airtime/airtime.conf ? (hiding the sensitive part, of course)

1 Like

Thank you @xabispacebiker

Ok, looking at the logs this morning, the API error persists:

root@machine:/# cat /var/log/airtime/pypo/pypo.log

2021-04-22 11:14:16,551 [api_client] [INFO ]  Unable to get Airtime API version number.

2021-04-22 11:14:21,600 [api_client] [INFO ]  Unable to get Airtime API version number.

Let’s see what the config file on the destination server says:

root@machine:/# cat /etc/airtime/airtime.conf

[general]
#api_key = destination_API_key
api_key = source_API_key
web_server_user = www-data
base_url = destination.example.com
#base_port = 80  # I CHANGED THIS BELOW TO MATCH SOURCE SERVER
base_port = 443
base_dir = /
force_ssl =
cache_ahead_hours = 1
airtime_dir =
station_id =
auth = local

[database]
host = localhost
dbname = airtime
dbuser = airtime
#dbpass = destination_db_password
dbpass = source_db_password


[rabbitmq]
host = 127.0.0.1
port = 5672
user = airtime
#password = dest_password
password = source_password
vhost = /airtime


[current_backend]
storage_backend=file

[monit]
user =
password =

[pypo]
api_client = 'airtime'
cache_dir = '/var/tmp/airtime/pypo/cache/'
file_dir = '/var/tmp/airtime/pypo/files/'
tmp_dir = '/var/tmp/airtime/pypo/tmp/'
cache_base_dir = '/var/tmp/airtime/pypo'
log_base_dir = '/var/log/airtime'
pypo_log_dir = '/var/log/airtime/pypo'
liquidsoap_log_dir = '/var/log/airtime/pypo-liquidsoap'
ls_host = '127.0.0.1'
ls_port = '1234'
poll_interval = 3600
push_interval = 1
cue_style = 'pre'
record_bitrate = 256
record_samplerate = 44100
record_channels = 2
record_sample_size = 16
record_file_type = 'ogg'
base_recorded_files = '/var/tmp/airtime/show-recorder/'

[facebook]
facebook_app_id = 0
facebook_app_url = http://example.org
facebook_app_api_key = 0

[ldap]
hostname = ldap.example.org
binddn = 'uid=libretime,cn=sysaccounts,cn=etc,dc=int,dc=example,dc=org'
password = hackme
account_domain = INT.EXAMPLE.ORG
basedn = 'cn=users,cn=accounts,dc=int,dc=example,dc=org'
filter_field = uid
groupmap_guest = 'cn=guest,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
groupmap_host = 'cn=host,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
groupmap_program_manager = 'cn=program_manager,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
groupmap_admin = 'cn=admins,cn=groups,cn=accounts,dc=int,dc=example,dc=org'
groupmap_superadmin = 'cn=superadmin,cn=groups,cn=accounts,dc=int,dc=example,dc=org'

root@machine:/#

The problem could be to do with different versions of LT - the source installation is a few years old and the destination installation is pulled fresh from git. This might be relevant - “Airtime issue”.

Many TIA

Edit: As a first try, set force_ssl = 1 in airtime.conf. (I understand that you are using SSL on that domain at port 443)

From what you explain, it seems that the problem is in the imported database, especially if it is a database from a previous version of libretime.

I’d suggest you do a few tests (I assume you have already done a database an media backup!):

Reinstall airtime from scratch and see if it works without the old database. If everything is working fine, then replace the old database with the new one.

if the solution above did not work, upgrade the whole system with the old database installed so that libretime upgrades the database too.

This is it by now

1 Like

Thank you @xabispacebiker.

Newbie question - how can I upgrade LT? Is it just a case of pulling down the latest image from git and installing over the top of the old one?

These are the steps to update LT (first make a backup of your media and or database):

git clone https://github.com/LibreTime/libretime.git
cd libretime
sudo ./install -fiap
1 Like

Many thanks, @xabispacebiker - just install over the top (after taking backups).

All the best for now.