|
1 | 1 | --- |
2 | | -sidebar_position: 2 |
| 2 | +sidebar_position: 30 |
3 | 3 | --- |
4 | 4 |
|
5 | | -# Quick install |
6 | | - |
7 | | -## Installing for testing \(or production\) |
8 | | - |
9 | | -### **Prerequisites** |
10 | | - |
11 | | -* **Linux**: Install [Docker](https://docs.docker.com/install/linux/docker-ce/ubuntu/) and [docker-compose](https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-18-04). |
12 | | -* **Windows**: Install [Docker for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows). |
13 | | - |
14 | | -### Installation |
15 | | - |
16 | | -This docker-compose file automates the basic setup of the [Sofie-Core application](../../for-developers/libraries.md#main-application), the backend database and different Gateway options. |
17 | | - |
18 | | -```yaml |
19 | | -# This is NOT recommended to be used for a production deployment. |
20 | | -# It aims to quickly get an evaluation version of Sofie running and serve as a basis for how to set up a production deployment. |
21 | | -services: |
22 | | - db: |
23 | | - hostname: mongo |
24 | | - image: mongo:6.0 |
25 | | - restart: always |
26 | | - entrypoint: ['/usr/bin/mongod', '--replSet', 'rs0', '--bind_ip_all'] |
27 | | - # the healthcheck avoids the need to initiate the replica set |
28 | | - healthcheck: |
29 | | - test: test $$(mongosh --quiet --eval "try {rs.initiate()} catch(e) {rs.status().ok}") -eq 1 |
30 | | - interval: 10s |
31 | | - start_period: 30s |
32 | | - ports: |
33 | | - - '27017:27017' |
34 | | - volumes: |
35 | | - - db-data:/data/db |
36 | | - networks: |
37 | | - - sofie |
38 | | - |
39 | | - # Fix Ownership Snapshots mount |
40 | | - # Because docker volumes are owned by root by default |
41 | | - # And our images follow best-practise and don't run as root |
42 | | - change-vol-ownerships: |
43 | | - image: node:22-alpine |
44 | | - user: 'root' |
45 | | - volumes: |
46 | | - - sofie-store:/mnt/sofie-store |
47 | | - entrypoint: ['sh', '-c', 'chown -R node:node /mnt/sofie-store'] |
48 | | - |
49 | | - core: |
50 | | - hostname: core |
51 | | - image: sofietv/tv-automation-server-core:release52 |
52 | | - restart: always |
53 | | - ports: |
54 | | - - '3000:3000' # Same port as meteor uses by default |
55 | | - environment: |
56 | | - PORT: '3000' |
57 | | - MONGO_URL: 'mongodb://db:27017/meteor' |
58 | | - MONGO_OPLOG_URL: 'mongodb://db:27017/local' |
59 | | - ROOT_URL: 'http://localhost:3000' |
60 | | - SOFIE_STORE_PATH: '/mnt/sofie-store' |
61 | | - networks: |
62 | | - - sofie |
63 | | - volumes: |
64 | | - - sofie-store:/mnt/sofie-store |
65 | | - depends_on: |
66 | | - change-vol-ownerships: |
67 | | - condition: service_completed_successfully |
68 | | - db: |
69 | | - condition: service_healthy |
70 | | - |
71 | | - playout-gateway: |
72 | | - image: sofietv/tv-automation-playout-gateway:release52 |
73 | | - restart: always |
74 | | - environment: |
75 | | - DEVICE_ID: playoutGateway0 |
76 | | - CORE_HOST: core |
77 | | - CORE_PORT: '3000' |
78 | | - networks: |
79 | | - - sofie |
80 | | - - lan_access |
81 | | - depends_on: |
82 | | - - core |
83 | | - |
84 | | - # Choose one of the following images, depending on which type of ingest gateway is wanted. |
85 | | - |
86 | | - # spreadsheet-gateway: |
87 | | - # image: superflytv/sofie-spreadsheet-gateway:latest |
88 | | - # restart: always |
89 | | - # environment: |
90 | | - # DEVICE_ID: spreadsheetGateway0 |
91 | | - # CORE_HOST: core |
92 | | - # CORE_PORT: '3000' |
93 | | - # networks: |
94 | | - # - sofie |
95 | | - # depends_on: |
96 | | - # - core |
97 | | - |
98 | | - # mos-gateway: |
99 | | - # image: sofietv/tv-automation-mos-gateway:release52 |
100 | | - # restart: always |
101 | | - # ports: |
102 | | - # - "10540:10540" # MOS Lower port |
103 | | - # - "10541:10541" # MOS Upper port |
104 | | - # # - "10542:10542" # MOS query port - not used |
105 | | - # environment: |
106 | | - # DEVICE_ID: mosGateway0 |
107 | | - # CORE_HOST: core |
108 | | - # CORE_PORT: '3000' |
109 | | - # networks: |
110 | | - # - sofie |
111 | | - # depends_on: |
112 | | - # - core |
113 | | - |
114 | | - # inews-gateway: |
115 | | - # image: tv2media/inews-ftp-gateway:1.37.0-in-testing.20 |
116 | | - # restart: always |
117 | | - # command: yarn start -host core -port 3000 -id inewsGateway0 |
118 | | - # networks: |
119 | | - # - sofie |
120 | | - # depends_on: |
121 | | - # - core |
122 | | - |
123 | | - # rundown-editor: |
124 | | - # image: ghcr.io/superflytv/sofie-automation-rundown-editor:v2.2.4 |
125 | | - # restart: always |
126 | | - # ports: |
127 | | - # - '3010:3010' |
128 | | - # environment: |
129 | | - # PORT: '3010' |
130 | | - # networks: |
131 | | - # - sofie |
132 | | - # depends_on: |
133 | | - # - core |
134 | | - |
135 | | -networks: |
136 | | - sofie: |
137 | | - lan_access: |
138 | | - driver: bridge |
139 | | - |
140 | | -volumes: |
141 | | - db-data: |
142 | | - sofie-store: |
143 | | -``` |
144 | | -
|
145 | | -Create a `Sofie` folder, copy the above content, and save it as `docker-compose.yaml` within the `Sofie` folder. |
146 | | - |
147 | | -Visit [Rundowns & Newsroom Systems](installing-a-gateway/rundown-or-newsroom-system-connection/intro.md) to see which _Ingest Gateway_ can be used in your specific production environment. If you don't have an NRCS that you would like to integrate with, you can use the [Rundown Editor](rundown-editor) as a simple Rundown creation utility. Navigate to the _ingest-gateway_ section of `docker-compose.yaml` and select which type of _ingest-gateway_ you'd like installed by uncommenting it. Save your changes. |
148 | | - |
149 | | -Open a terminal, execute `cd Sofie` and `sudo docker-compose up` \(or just `docker-compose up` on Windows\). This will download MongoDB and Sofie components' container images and start them up. The installation will be done when your terminal window will be filled with messages coming from `playout-gateway_1` and `core_1`. |
150 | | - |
151 | | -Once the installation is done, Sofie should be running on [http://localhost:3000](http://localhost:3000). Next, you need to make sure that the Playout Gateway and Ingest Gateway are connected to the default Studio that has been automatically created. Open the Sofie User Interface with [Configuration Access level](../features/access-levels#browser-based) by opening [http://localhost:3000/?admin=1](http://localhost:3000/?admin=1) in your Web Browser and navigate to _Settings_ 🡒 _Studios_ 🡒 _Default Studio_ 🡒 _Peripheral Devices_. In the _Parent Devices_ section, create a new Device using the **+** button, rename the device to _Playout Gateway_ and select _Playout gateway_ from the _Peripheral Device_ drop down menu. Repeat this process for your _Ingest Gateway_ or _Sofie Rundown Editor_. |
152 | | - |
153 | | -:::note |
154 | | -Starting with Sofie version 1.52.0, `sofietv` container images will run as UID 1000. |
155 | | -::: |
156 | | - |
157 | | -### Tips for running in production |
158 | | - |
159 | | -There are some things not covered in this guide needed to run _Sofie_ in a production environment: |
160 | | - |
161 | | -- Logging: Collect, store and track error messages. [Kibana](https://www.elastic.co/kibana) and [logstash](https://www.elastic.co/logstash) is one way to do it. |
162 | | -- NGINX: It is customary to put a load-balancer in front of _Sofie Core_. |
163 | | -- Memory and CPU usage monitoring. |
164 | | - |
165 | | -## Installing for Development |
166 | | - |
167 | | -Installation instructions for installing Sofie-Core or the various gateways are available in the README file in their respective github repos. |
168 | | - |
169 | | -Common prerequisites are [Node.js](https://nodejs.org/) and [Yarn](https://yarnpkg.com/). |
170 | | -Links to the repos are listed at [Applications & Libraries](../../for-developers/libraries.md). |
171 | | - |
172 | | -[_Sofie Core_ GitHub Page for Developers](https://github.com/Sofie-Automation/sofie-core) |
| 5 | +# Installing Sofie Core |
0 commit comments