feat: initial commit

This commit is contained in:
nikola
2026-05-19 14:53:36 +02:00
commit 6536b5fa23
39 changed files with 2257 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
logLevel: info
logDestinations: [stdout]
api: yes
apiAddress: :9997
rtsp: yes
protocols: [tcp, udp]
rtspAddress: :8554
webrtc: yes
webrtcAddress: :8889
hls: yes
hlsAddress: :8888
paths:
phone-cam:
+112
View File
@@ -0,0 +1,112 @@
server {
listen 80;
server_name _;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://app:8000/api/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /ws {
proxy_pass http://app:8000/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
location /hls/ {
proxy_pass http://localhost:8888/;
proxy_http_version 1.1;
}
location /whep/ {
proxy_pass http://localhost:8889/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /whip/ {
proxy_pass http://localhost:8889/;
proxy_http_version 1.1;
}
location /media/ {
proxy_pass http://app:8000/media/;
}
location ~* \.(jpg|jpeg|png|gif|ico|svg|webp)$ {
expires 1h;
add_header Cache-Control "public, immutable";
}
}
# HTTPS server for phone camera access
server {
listen 443 ssl;
server_name _;
ssl_certificate /etc/nginx/ssl/ssl.crt;
ssl_certificate_key /etc/nginx/ssl/ssl.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /usr/share/nginx/html;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://app:8000/api/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
location /ws {
proxy_pass http://app:8000/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 86400;
}
location /hls/ {
proxy_pass http://localhost:8888/;
proxy_http_version 1.1;
}
location /whep/ {
proxy_pass http://localhost:8889/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /whip/ {
proxy_pass http://localhost:8889/;
proxy_http_version 1.1;
}
location /media/ {
proxy_pass http://app:8000/media/;
}
location ~* \.(jpg|jpeg|png|gif|ico|svg|webp)$ {
expires 1h;
add_header Cache-Control "public, immutable";
}
}
+19
View File
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDDTCCAfWgAwIBAgIUfk7t0JmuB+pX+bdLZDb4Nb/YbNswDQYJKoZIhvcNAQEL
BQAwFjEUMBIGA1UEAwwLMTAuMC41MC4yMTAwHhcNMjYwNTA1MTUyMjExWhcNMjcw
NTA1MTUyMjExWjAWMRQwEgYDVQQDDAsxMC4wLjUwLjIxMDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBANVxoY/NItynssUEHHvPa9NwmCyirq/SMWZ9LhoT
CfOZM1Rh7umTx8jfVkIkgRj38nCSN6adjGMSF0x1i2yUhRzCZqMhbgTgmRg83xjf
9TnTjdIX+cLDfwNQATMioKm9AEUgwNco+bq+CtNfj4GrEbiPUzpXxry8QXHxgHXs
WwJiV/3727J5UvkoUWy3WDlpGuEnyPT+m4ISFxqca9moc0DmPOA1rJpuKqgryMSY
/2z5nuTFSlJDbB5t3p/NM1ZsFLWw2sRt2jA3gm3+hUH/oDuNovIlLBUq2fKpK/0o
KVuiw6j3BlTFDMI3hC/NroRplBRHxf72ZVG52IDGDHfhANECAwEAAaNTMFEwHQYD
VR0OBBYEFL4w/HT2j50CMskln85+ieG/77fyMB8GA1UdIwQYMBaAFL4w/HT2j50C
Mskln85+ieG/77fyMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
ABkOxgkdOg/SfNJ6A06azGclosnTASRYI6SCnesfH6vIEgs0BmH+eaG5Mgy56dxg
BL8vIslKK8yz0m3STTgsepHhOePBZJ92JASvFsjSpEJCq3BkrbyFK8+g6OiOd0T/
d+3Hn0dne25ZLRdHNZeDTe+pHPj7ReejBGOv/udDLDdxWhpV+sdWTPU2S+Up5GQT
d9EIr7GzasrtrEViqbqP8QUXmmLg8ENGePnXMHgQ3NlxFZu4sfG9cfDUm15LMYIe
g9K0p7v63FUKbmS+fqQEQvxTK/RGs4UeHcRge0cwXHEqiUqliVreKFtomhB2dCN+
AoB68PQcO6VUsKyhehE5CIM=
-----END CERTIFICATE-----
+28
View File
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDVcaGPzSLcp7LF
BBx7z2vTcJgsoq6v0jFmfS4aEwnzmTNUYe7pk8fI31ZCJIEY9/JwkjemnYxjEhdM
dYtslIUcwmajIW4E4JkYPN8Y3/U5043SF/nCw38DUAEzIqCpvQBFIMDXKPm6vgrT
X4+BqxG4j1M6V8a8vEFx8YB17FsCYlf9+9uyeVL5KFFst1g5aRrhJ8j0/puCEhca
nGvZqHNA5jzgNayabiqoK8jEmP9s+Z7kxUpSQ2webd6fzTNWbBS1sNrEbdowN4Jt
/oVB/6A7jaLyJSwVKtnyqSv9KClbosOo9wZUxQzCN4Qvza6EaZQUR8X+9mVRudiA
xgx34QDRAgMBAAECggEAAOTcjUnzKf5svrKfgB7Ef0KuZs6RaSBXGgYyCC/TTaBs
pp9D5jpNNn9F81OTbb1V3ot09ZwSbkO7AegtcOzKZIb5VKzllNgaIdXH+Nz6KpAM
UWOEkjqor4Fg/m21t7h8WxKbYhUAs+DzrOzEhefIUl65QoJMXYui3bsD81+aCImd
wdxUJvkBw1wuFhP9eKSves3kgacq2lg/YOCfVVOndB7rx1kpvftfOR1sAJI/wYEy
AnDUXURBcYxp0OPFmA5p3QAnDjiFudEm60RArOfkKeo6fuMfS0DoXuQP7EV14Swy
dxyJUk+r7KWb3zMYTAaJdjSREl5Gt6ZNR/8+4a71jQKBgQD2YRqB9efV9IiQy5ZI
v4YhJiihB1yxtuZXQkUW4FYoq+8JVcSPZCd7JPTMPnJMU5gxdSt5QbZIY8jRlyTL
u2eRm0S8a343Nm6+ItiaKUsnVLIptWMJ7T7cXNH3gN+e9jYKXrThzhkRy0SO46pA
Y8s+eM1bycKDfd+Lm3TCGnHIwwKBgQDdx0sDsZjJxQwfnCDckis2lWhMlUZvxxqP
6AO/jy/hKbW8yMkkh6kF2M5acVoopJUMmEjaTxnr/mmkfGWiwYO0l68k613sbB3V
k2s4qWgK2GqAmycIO5/ZwPLfECpKIwkLQMQaDIFQjgWa1O1oeWdNWisYbuF5IT//
L6OzkPiW2wKBgG0/eYWPCJHysGukGqt/YXZpeTKOFSgoNdMTa5dNOmcmdgPpqBL9
EhSkunemaQA3QRENJ43I+Y730CA/qO092BrUgpIaCAlrdYeR5AHXtZ9nCuk7qQLJ
1EnaTrA00POnsSa//+zwemVNgMTrZp7OoVy+LDE7Makks28wK4G2QCYJAoGAVETT
phWnXpN25dPnUKhhrx3aQa8+0l4vI5sfQXxgzweQPKl2dGDvwn78+bS0c1kGIYED
vZ/s05UaAxwZalxpdQdlz3t3dswmEe8wAJmuJODSpwdNL32oYY9FOajkyMLDPvlf
Ch7STA+K5agehWIL9IJcea44ElSmAorRgvuE2Z0CgYAVMC5iNFZb7psDLE0ff8xW
ueoygM5tLQ0ZXRQ21PaKEIo3VcBlYoF5QWzbmHafoRl9bNUuzd9J26F6JkImidfF
1FygVsijtJeemPOyTrzYkMQbL+x/c7elHwehRI1EvlleUH9cCNt4jy+S+zbkbPLj
Jpk+IHa0CdqEQdqBHGn8TQ==
-----END PRIVATE KEY-----