-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathdocker-compose.yml
221 lines (176 loc) · 9.48 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
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
version: '2.0'
services:
basicstation:
# Use pre-defined image
image: xoseperez/basicstation:latest
# Or comment out image and build it yourself
#build:
# context: .
# args:
# ARCH: aarch64
# REMOTE_TAG: v2.0.6
# VARIANT: std
container_name: basicstation
restart: unless-stopped
privileged: true # set this to true or define the required devices to share with the container under the `devices` tag below
network_mode: host # required to read host interface MAC instead of virtual one, you don't need this if you set the GATEWAY_EUI manually
#devices:
# - /dev/ttyACM0 # share the device where your concentrator is connected to or set privileged to true above
# - /dev/spidev0.0 # share the device where your concentrator is connected to or set privileged to true above
# - /dev/gpiochip0 # allow the container to access the GPIO (via gpiod) if using an SPI concentrator or set privileged to true above
#volumes:
# - ./config:/app/config
#secrets:
# - tc.uri
# - tc.trust
# - tc.crt
# - tc.key
# - cups.uri
# - cups.trust
# - cups.crt
# - cups.key
#environment:
# To select your concentrator you have 3 options:
# Option 1: set the MODEL to the device model number (i.e. RAK7371)
# Option 2: set the MODEL to the concentrator model number (i.e. RAK5146, WM1302, R11E-LR8...)
# Option 2: set the MODEL to the concentrator chip (i.e. SX1303)
#MODEL: "RAK5146"
#MODEL: "SX1303"
# The concentrator design is usually taken from the MODEL (see https://doc.sm.tc/station):
# * V2 design was used with SX1301 and SX1308 concentrators with SPI interface
# * PicoCell design defines SX1308-based concentrators with USB interface
# * CoreCell design is in use with SX1302 and SX1303 concentrators, both SPI and USB interface
# but in case you what to specify it you can using the DESIGN variable
#DESIGN: "V2"
#DESIGN: "PICOCELL"
#DESIGN: "CORECELL"
# The interface the concentrator uses, either "SPI", "USB", "NET" or "AUTO".
# Use "AUTO" coupled with device auto-discover feature below. Defaults to "SPI".
#INTERFACE: "AUTO"
#INTERFACE: "NET"
# If you have the concentrator connected to a different port than the default one
# ("/dev/spidev0.0" for SPI, "/dev/ttyACM0" for USB or "<hostip>:3333" for NET) you can define here.
# Set it to "AUTO" for auto-discover (works only with Corecell and Picocell concentrators).
#DEVICE: "/dev/spidev0.0"
#DEVICE: "/dev/ttyACM0"
#DEVICE: "192.168.1.86:3333"
#DEVICE: "AUTO"
# When using auto-discover feature the search will stop after the first concentrator it finds,
# you can change this behaviour by setting RADIO_NUM to any other value.
#RADIO_NUM: 1
# GPIO to reset SPI concentrators (these are the defaults)
#USE_LIBGPIOD: 0 # set to 1 by default for Raspberry Pi 5
#GPIO_CHIP: "gpiochip0" # set to "gpiochip4" by default for Raspberry Pi 5
#RESET_GPIO: 17
#POWER_EN_GPIO: 0
#POWER_EN_LOGIC:1
# Problems with an SPI concentrator are sometimes related to the bus speed,
# you can set a different one this way
#SPI_SPEED: 8000000
# Each gateway is identified by its Gateway EUI (8 bytes in hex format)
# The procedure to defined that EUI is as follows:
# 1) It will use the EUI in the configuration files provided if any
# 2) It will use the concentrator Chip ID if GATEWAY_EUI_SOURCE set to "chip" (will work only for Corecell concentrators)
# 3) It will use the GATEWAY_EUI variable below if defined
# 4) It will use the MAC address of the network interface identified by GATEWAY_EUI_SOURCE
# 5) It will use the MAC address of the first existing network interface in this list: eth0, wlan0 and usb0
# 6) It will use the MAC address of the network interface with more traffic
# For options 4 to 6 you want to use network mode host to get the same EUI accross container reboots
#GATEWAY_EUI_SOURCE: "enx00e04c68160f"
#GATEWAY_EUI_SOURCE: "chip"
#GATEWAY_EUI: "0016C001FFAAAAAA"
# If the WHITELIST_NETIDS list is not empty, only uplinks from the listed NetID will be allowed.
# The list can be comma or space separated. NetIDs are 3 bytes long and can be in decimal or hex (starting with 0x).
#WHITELIST_NETIDS: 0x000013,0xC00071
# If the WHITELIST_OUIS list is not empty, only join requests from devices by the listed OUI will be allowed.
# The OUI of the device is represented by the first 3 bytes of the DevEUI.
# The list can be comma or space separated. OUIs are 3 bytes long and can be in decimal or hex (starting with 0x).
#WHITELIST_OUIS: 0x75B3D5
# ------------------------------------------------
# GPS
# ------------------------------------------------
# Defines the FILE or FIFO that emits NMEA messages from the GNSS receiver.
# Station uses this to extract LAT/LON coordinates of the gateway.
#GPS_DEV: "/dev/ttyAMA0"
#GPS_DEV: "/dev/ttyS0"
# ------------------------------------------------
# TTI/TTN specific
# ------------------------------------------------
# The default LNS server is the European TTN server.
# If you still want to use TTN but a different region you can set it this way,
# this will create the TC_URI and CUPS_URI URLs for the corresponding TTN server
#TTS_REGION: "au1"
# Tenant name if using The Things Cloud
# This will create the TC_URI and CUPS_URI URLs for the corresponding server
#TTS_TENANT: "ttn"
# Server name indication (SNI) check, defaults to true.
# Use it only to connect to private LNS/CUPS servers with self-signed certificates
# Check https://github.com/xoseperez/basicstation-docker/issues/4#issuecomment-1230138180
#TLS_SNI: false
# ------------------------------------------------
# LNS Protocol
# ------------------------------------------------
# Using LNS protocol: define a custom LNS server
#TC_URI: "wss://lns.example.com:8887"
# Using LNS protocol: if you use a server other than TTN, you will have to provide the certificate for that server.
#TC_TRUST: "-----BEGIN CERTIFICATE-----MIIDJDCCAgygAwIBAgIUdoPom8rI1/IYR7dG6JyxDGSUGBQwDQYJKoZIhvcNAQELBQAwGDE...."
# Some servers will require you to include the client certificate:
#TC_CRT: "-----BEGIN CERTIFICATE-----MIICUzCCATugAwIBAgIUM3K60JYw9eRjxXly27wVD0w6QF0wDQYJKoZIhvcNAQELBQAwGDEWMBQG...."
# Finally, you need to provide the key for the gateway,
# this can either be the client key for the client certificate above or
# the API key provided by the LNS (if no client certificate)
#TC_KEY: "NNSXS.O27GW2MQK..."
#TC_KEY: "-----BEGIN PRIVATE KEY-----MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgDO/pLoHo5zF4Rcok7HYT3cG2...."
# ------------------------------------------------
# CUPS Protocol
# ------------------------------------------------
# Force use CUPS protocol (regardless of TC_KEY existance below)
#USE_CUPS: 0
# Define a custom CUPS server
#CUPS_URI: "https://lns.example.com:443"
# If you use a server other than TTN, you will have to provide the trusted CA certificate for that server
#CUPS_TRUST: "-----BEGIN CERTIFICATE----- MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA......"
# Some servers will require you to include the client certificate:
#CUPS_CRT: "-----BEGIN CERTIFICATE-----MIICUzCCATugAwIBAgIUKGWM6utODCeqLXjXV1Nb4BhEHoYwDQYJKoZIhvcNAQE...."
# Finally, you need to provide the key for the gateway,
# this can either be the client key for the client certificate above or
# the API key provided by the LNS (if no client certificate)
#CUPS_KEY: "NNSXS.SLOC764GN3....."
#CUPS_KEY: "-----BEGIN PRIVATE KEY-----MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgX9+0oaCXacjlG13nU5y....."
# ------------------------------------------------
# The Things Industries - Autoprovision
# ------------------------------------------------
# Gateway prefix to autogenerate IDs in TTI/TTN (defaults to "eui")
#GATEWAY_PREFIX: "project"
# Gateway ID to use when registering the gateway in TTI/TTN (defaults to "<GATEWAY_PREFIX>-<GATEWAY_EUI>")
#GATEWAY_ID: "gw-test-01"
# Gateway NAME to use when registering the gateway in TTI/TTN (defaults to <GATEWAY_ID>)
#GATEWAY_NAME: "gw-test-01"
# TTS username with privileges to provision a gateway
#TTS_USERNAME: "xoseperez"
# Personal key with privileges to provision a gateway
# Required permissions:
# * link as Gateway to a Gateway Server for traffic exchange, i.e. write uplink and read downlink
# * view and edit gateway API keys
# * edit basic gateway settings
# * create a gateway under the user account
#TTS_PERSONAL_KEY: "NNSXS.E2CK53N....."
# The Things Stack frequency plan (https://www.thethingsindustries.com/docs/reference/frequency-plans/)
#TTS_FREQUENCY_PLAN_ID: "EU_863_870_TTN"
#secrets:
# tc.uri:
# file: tc.uri
# tc.trust:
# file: tc.trust
# tc.crt:
# file: tc.crt
# tc.key:
# file: tc.key
# cups.uri:
# file: cups.uri
# cups.trust:
# file: cups.trust
# cups.crt:
# file: cups.crt
# cups.key:
# file: cups.key