new pages
This commit is contained in:
@@ -73,9 +73,8 @@ services:
|
||||
networks:
|
||||
glympse_net: null
|
||||
networks:
|
||||
default:
|
||||
glympse_net:
|
||||
external: true
|
||||
name: glympse_net
|
||||
```
|
||||
There are two more files that you need to create and save before running the compose file.
|
||||
|
||||
|
||||
@@ -12,14 +12,49 @@ UWSGI and NGINX are required for the webui service
|
||||
|
||||
The following compose file will enable all services in a single container. This will work but it is possible that the transcoding and transcribing tasks can slow down the webui if you're running on a slower machine.
|
||||
|
||||
If you are going to be running the transcoder or the transcription engine, you will need an Nvidia GPU. To find the device ID run `nvidia_smi` on the system you will be installing the container.
|
||||
This will give you an output that looks like this:
|
||||
```
|
||||
+-----------------------------------------------------------------------------------------+
|
||||
| NVIDIA-SMI 565.57.02 Driver Version: 566.03 CUDA Version: 12.7 |
|
||||
|-----------------------------------------+------------------------+----------------------+
|
||||
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
|
||||
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
|
||||
| | | MIG M. |
|
||||
|=========================================+========================+======================|
|
||||
| 0 NVIDIA GeForce GTX 1080 On | 00000000:01:00.0 On | N/A |
|
||||
| 27% 38C P8 8W / 180W | 893MiB / 8192MiB | 1% Default |
|
||||
| | | N/A |
|
||||
+-----------------------------------------+------------------------+----------------------+
|
||||
|
||||
+-----------------------------------------------------------------------------------------+
|
||||
| Processes: |
|
||||
| GPU GI CI PID Type Process name GPU Memory |
|
||||
| ID ID Usage |
|
||||
|=========================================================================================|
|
||||
| 0 N/A N/A 26 G /Xwayland N/A |
|
||||
+-----------------------------------------------------------------------------------------+
|
||||
```
|
||||
The device id is in the third row, just above the memory:
|
||||
```
|
||||
+========================+
|
||||
| 00000000:01:00.0 On |
|
||||
| 893MiB / 8192MiB |
|
||||
| |
|
||||
+------------------------+
|
||||
```
|
||||
In this case the device id is: `00000000:01:00.0`
|
||||
|
||||
Add this to your compose file. A file that runs all services with a gpu looks like:
|
||||
|
||||
```yaml {filename="compose.yml"}
|
||||
services:
|
||||
Glympse:
|
||||
Glympse_net:
|
||||
image: git.themainframe.co.uk/josh/glympse
|
||||
container_name: Glympse
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 80:80
|
||||
- 8080:80
|
||||
environment:
|
||||
TZ: Europe/London
|
||||
ENABLE_UWSGI: yes
|
||||
@@ -29,11 +64,45 @@ services:
|
||||
ENABLE_MIGRATIONS: yes
|
||||
ENABLE_TRANSCRIBER: yes
|
||||
ENABLE_TRANSCODER: yes
|
||||
DJANGO_SETTINGS_MODULE: Glympse.settings.production
|
||||
SECRET_KEY: "super_secret_key"
|
||||
SECRET_ADMIN_URL: random_string
|
||||
CSRF_TRUSTED_ORIGINS: http://127.0.0.1
|
||||
ALLOWED_HOSTS: 127.0.0.1
|
||||
ADMINS: admin@glympsevideo.com
|
||||
DOMAIN: glympse.glympsevideo.com
|
||||
SQL_ENGINE: django.db.backends.mysql
|
||||
SQL_DATABASE: glympse
|
||||
SQL_USER: glympse
|
||||
SQL_PASSWORD: insecure_password
|
||||
SQL_HOST: mysql
|
||||
SQL_PORT: 3306
|
||||
EMAIL_HOST: mail.themainframe.co.uk
|
||||
EMAIL_PORT: 587
|
||||
EMAIL_USE_TLS: true
|
||||
EMAIL_HOST_USER: noreply@glympsevideo.com
|
||||
EMAIL_HOST_PASSWORD: insecure_password
|
||||
DEFAULT_FROM_EMAIL: Glympse<glympse@glympsevideo.com>
|
||||
ALLOWED_EMAIL_DOMAINS: glympsevideo.com
|
||||
REDIS_HOST: redis://redis:6379
|
||||
RABBITMQ_URL: amqp://glympse:insecure_password@rabbitmq:5672/glympse
|
||||
ADMIN_USERNAME: hub
|
||||
ADMIN_EMAIL: admin@glympsevideo.com
|
||||
ADMIN_PASSWORD: insecure_password
|
||||
LOG_LEVEL: DEBUG
|
||||
TIMEZONE: Europe/London
|
||||
MICROSOFT_AUTH_CLIENT_ID: None
|
||||
MICROSOFT_AUTH_CLIENT_SECRET: None
|
||||
MICROSOFT_AUTH_TENANT_ID: None
|
||||
MEMCACHED: memcached:11211
|
||||
CUDA_DEVICE: cuda:0
|
||||
DEBUG: "True"
|
||||
REMOTE_WORKER: "False"
|
||||
REMOTE_PRODUCTION: None
|
||||
volumes:
|
||||
- /opt/glympse/logs:/Glympse/logs
|
||||
- /opt/glympse/.env:/Glympse/config/.env
|
||||
- <Glympse media location>:/media
|
||||
- <rushes location>:/rushes:ro
|
||||
- /media:/media
|
||||
- /rushes:/rushes:ro
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
@@ -42,56 +111,43 @@ services:
|
||||
device_ids:
|
||||
- 00000000:01:00.0
|
||||
capabilities:
|
||||
- gpu
|
||||
- gpu
|
||||
networks:
|
||||
glympse_net: null
|
||||
memcached:
|
||||
image: memcached:latest
|
||||
container_name: memcached
|
||||
entrypoint: memcached -m 256
|
||||
restart: unless-stopped
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
glympse_net: null
|
||||
networks:
|
||||
default:
|
||||
glympse_net:
|
||||
external: true
|
||||
name: glympse_net
|
||||
```
|
||||
|
||||
If you are install Glympse on a second system or a system other than where the raw camera files are stored you can use the following to mount the volumes as smb shares:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
rushes:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: cifs
|
||||
o: username=<sbm_username>,password=<smb_password>,ro,domain=localhost
|
||||
device: \\smb\share\path
|
||||
```
|
||||
|
||||
The following env file is required. You will need to change some of the options to what you specified in the database section of the install.
|
||||
Alternatively you can use a nfs share:
|
||||
```yaml
|
||||
volumes:
|
||||
rushes:
|
||||
driver_opts:
|
||||
type: nfs
|
||||
o: "addr=<nfs-server-ip>,nolock,soft,rw"
|
||||
device: ":/full/share/path"
|
||||
```
|
||||
|
||||
Every line must be in the env file for every container you run regardless of what services are enabled.
|
||||
You will need to make sure that if you are mounting the raw rushes volume that you mount this as `ro` or read only so Glympse can not make any changes to the raw rushes.
|
||||
|
||||
```env {filename=".env"}
|
||||
DJANGO_SETTINGS_MODULE="Glympse.settings.production"
|
||||
SECRET_KEY="<generate a long random string>"
|
||||
SECRET_ADMIN_URL=<Generate a short random string>
|
||||
CSRF_TRUSTED_ORIGINS=https://"<Glympse domain>"
|
||||
ALLOWED_HOSTS="<Glympse Domain>"
|
||||
ADMINS='<admin email address>'
|
||||
DOMAIN='<Glympse domain>'
|
||||
MAX_FIELDS=5000
|
||||
SQL_ENGINE="django.db.backends.mysql"
|
||||
SQL_DATABASE="glympse"
|
||||
SQL_USER="glympse"
|
||||
SQL_PASSWORD="<your glympse mysql password>"
|
||||
SQL_HOST="mysql"
|
||||
SQL_PORT="3306"
|
||||
EMAIL_HOST="<mail server>"
|
||||
EMAIL_PORT="<mail port>"
|
||||
EMAIL_USE_TLS="<mail tls>"
|
||||
EMAIL_HOST_USER="<email username>"
|
||||
EMAIL_HOST_PASSWORD="<email password>"
|
||||
DEFAULT_FROM_EMAIL="Glympse<glympse@example.com>"
|
||||
ALLOWED_EMAIL_DOMAINS="<allowed domains for user sign up>"
|
||||
REDIS_HOST="redis://redis:6379"
|
||||
RABBITMQ_URL="amqp://glympse:<rabbitmq password>@rabbitmq:5672/glympse"
|
||||
ADMIN_USERNAME="<admin username>"
|
||||
ADMIN_EMAIL="<admin email address>"
|
||||
ADMIN_PASSWORD="<default admin password>"
|
||||
LOG_LEVEL="INFO"
|
||||
TIMEZONE="Europe/London"
|
||||
MICROSOFT_AUTH_CLIENT_ID='<client ID for SSO>'
|
||||
MICROSOFT_AUTH_CLIENT_SECRET='<client secret for SSO>'
|
||||
MICROSOFT_AUTH_TENANT_ID='<tenant ID for SSO>'
|
||||
MEMCACHED='memcached:11211'
|
||||
CUDA_DEVICE='cuda:0'
|
||||
DEBUG=False
|
||||
```
|
||||
If you are mounting the glympse mediafiles or logs, you will need to mount this as `rw` or read write so Glympse can create the files.
|
||||
@@ -8,6 +8,9 @@ next: docs/install_glympse
|
||||
Glympse is split into multiple services so you can split the workload between multiple machines.
|
||||
|
||||
The available services are as follows:
|
||||
* Celery Beat\
|
||||
You should only have one of these running across all your containers. This is responsible for managing the scheduled tasks. Without this, the scheduled tasks will not run. For ease, I usually run this in the same container as the webui.
|
||||
|
||||
* WebUI\
|
||||
This is the webui front end. The reverse proxy needs to point to the machine that is running this service. It is possible to run more than one frontend for load balancing purposes.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user