-
Notifications
You must be signed in to change notification settings - Fork 23
/
docker-compose.yml
171 lines (127 loc) · 6.17 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
version: '3'
services:
libretime-postgres:
image: postgres:9.3-alpine
container_name: libretime-postgres
restart: always
privileged: true
environment:
- "POSTGRES_USER=${POSTGRES_USER-libretime}"
- "POSTGRES_PASSWORD=${POSTGRES_PASSWORD-libretime}"
- "PGDATA=/postgres_data"
volumes:
- ./postgresql:/postgres_data
networks:
- libretime-internal
ports:
# Postgre port mapped to non-standard port (for external admin access) - Internal access is via the internal docker network
- 5433:5432
libretime-rabbitmq:
image: rabbitmq:3.6-alpine
container_name: libretime-rabbitmq
restart: always
privileged: true
environment:
- "RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER-libretime}"
- "RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS-libretime}"
- "RABBITMQ_DEFAULT_VHOST=/libretime"
networks:
- libretime-internal
libretime-core:
## Docker-compose can create the containers in two ways:
## 1. From a local Dockerfile by supplying a path to the "build" configuration option. This method is commented-out by default:
# build:
# context: ./libretime-core
# dockerfile: Dockerfile
## 2. From a pre-made image downloaded from docker-hub. This option is enabled by default because it's faster.
image: bushrangers/ubuntu-multicontainer-libretime:libretime-latest
# To make changes to how the libretime-core container is built, modify the Dockerfile contained in this same folder, uncomment the "build: ." line above, and comment-out the "image: ..." line. You will then need to run docker-compose again, this time supplying options to tell it not to use it's cache: `docker-compose up -d --build --force-recreate`
# See the docker-compose documentation for more information: https://docs.docker.com/compose/overview/
container_name: libretime-core
restart: always
privileged: true
ports:
# Master & Show Source Inputs:
- ${MASTER_SOURCE_PORT-8001}:8001
- ${DJ_SOURCE_PORT-8002}:8002
# Port at which the LibreTime web interface should be served
- ${WEB_UI_PORT-8882}:80
environment:
#### NOTE: ####
#
# For detailed configuration, please edit the `libretime-code/config/airtime/airtime.conf` file once the container has started for the first time.
# The configuration variables here will over-write your airtime.conf file on the server when booting.
#
########################################################################################
# There's some apache fixes that are applied here so that you can expose the site on the internet - Specify the public FQDN name of your server using the EXTERNAL_HOSTNAME variable in your .env file.
- EXTERNAL_HOSTNAME=${EXTERNAL_HOSTNAME-localhost}
- WEB_UI_PORT=${WEB_UI_PORT-8882}
# Don't change these unless you change their values in the `libretime-rabbitmq` block.
- RABBITMQ_DEFAULT_USER=${RABBITMQ_DEFAULT_USER-libretime}
- RABBITMQ_DEFAULT_PASS=${RABBITMQ_DEFAULT_PASS-libretime}
- RABBITMQ_DEFAULT_VHOST=/libretime
- POSTGRES_USER=${POSTGRES_USER-libretime}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD-libretime}
- POSTGRES_DB_NAME=libretime
# Leave as default if you're not planning on using AWS S3, otherwise set your AWS credentials to auto-upload your recordings etc to S3.
- "AWS_S3_API_KEY=0"
- "AWS_S3_API_SECRET=0"
- "AWS_S3_BUCKET_NAME=0"
volumes:
# This structure has not yet been renamed in the fork of libretime from airtime.
- ./libretime-core/config/airtime:/etc/airtime
# Airtime customisations directory...
- ./libretime-core/customisations:/etc/airtime-customisations
# NB: Libretime will create some directories in this location (for user uploads, recorded podcasts etc)
# Change the `/localmusic` part of this directive to the location of your media files..
- ${LOCAL_MUSIC_MAPPING-./localmusic}:/external-media
networks:
- libretime-internal
- libretime
libretime-icecast:
# build:
# context: ./libretime-icecast
# dockerfile: Dockerfile
image: bushrangers/ubuntu-multicontainer-libretime:icecast-latest
container_name: libretime-icecast
restart: always
privileged: true
environment:
- "ICECAST_ADMIN_PASSWORD=${ICECAST_ADMIN_PASSWORD-admin}"
- "ICECAST_ADMIN_USERNAME=${ICECAST_ADMIN_USERNAME-libretime}"
- "ICECAST_ADMIN_EMAIL=${[email protected]}"
- "ICECAST_HOSTNAME=${ICECAST_HOSTNAME-icecast.your-fqdn.com}"
- "ICECAST_LOCATION=${ICECAST_LOCATION-Mars}"
- "ICECAST_MAX_CLIENTS=${ICECAST_MAX_CLIENTS-250}"
- "ICECAST_MAX_SOURCES=${ICECAST_MAX_SOURCES-3}"
- "ICECAST_SOURCE_PASSWORD=${ICECAST_SOURCE_PASSWORD-libretime}"
- "ICECAST_RELAY_PASSWORD=${ICECAST_RELAY_PASSWORD-libretime}"
- "ICECAST_PORT=${ICECAST_PORT-35112}"
- "WEBSITE_HOMEPAGE=${WEBSITE_HOMEPAGE-http://libretime.org/}"
- "ICECAST_MOUNT_NAME=${ICECAST_MOUNT_NAME-/live}"
ports:
# Icecast alternative port (probably good to expose this one to the web)
- ${ICECAST_PORT-35112}:35112
# The Icecast Default Port (mapping through for local clients that may require :8000)
- 8000:${ICECAST_PORT-35112}
volumes:
#- ${ICECAST_CONFIG_FILE-./libretime-icecast/config/icecast-example.xml}:/etc/icecast.xml
# Same mapping as the Libretime Localmusic... (so we can auto-play MP3's from libretieme when the stream disconnects...)
- ${LOCAL_MUSIC_MAPPING-./localmusic}:/external-media
networks:
- libretime-internal
## UNCOMMENT IF YOU WANT TO SEND YOUR ICECAST LISTENER STATS UP TO GOOGLE ANALTYICS
# icecast-analytics:
# image: bushrangers/docker-icecast-google-analytics:latest
# container_name: icecast-analytics
# restart: always
# privileged: true
# network_mode: host
## PLEASE CONFIGURE THE "icecast-ga-config.xml" FILE BEFORE USING THIS CONTAINER
# volumes:
# - ./libretime-icecast/config/icecast-ga-config.xml:/config/config.xml
networks:
libretime-internal:
driver: bridge
libretime:
external: true