new pages
Some checks failed
Deploy Hugo site to Pages / build (push) Failing after 39s
Deploy Hugo site to Pages / deploy (push) Has been skipped

This commit is contained in:
2024-11-26 17:28:08 +00:00
parent 43f9a55f48
commit e7b0cbdbf6
34 changed files with 593 additions and 65 deletions

View File

@@ -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.

View 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.

View File

@@ -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.

View File

@@ -0,0 +1,78 @@
---
title: Glympse Admin
prev: /docs/setup/admin_frontend
---
You can manage most of the admin settings from the front end. When a user is assigned admin permissions or is joined to the "hub" group they will have access to the admin menu on the webUI.
## Dashboard
Access the dashboard page. This give you an overview of the system. It will show some figures like how many clips are waiting to be transcoded or how many clips have been transcribed. It also shows you all running tasks and will also show who is currently online.
You can also trigger the periodic tasks from the bottom of this page.
## Logs
View the system logs.
## Add Production
This brings up the add production modal where you can add a production. This is the same interface as pressing the add production button on the home page.
## Edit Production
Here you can edit productions.
#### Production Admin
This is who is responsible for the production. It's likely that this should be the edit assistant assigned to the production. You can change this here, this person will receive the emails after the production has been scanned.
#### Cover Image
Click the image to upload a new thumbnail image for the production. Or reset it.
#### Active
An active production will be scanned for new rushes. A deactivated production will still be available to users.
#### Archive
This will remove the production from being able to be viewed. All files will remain, they will just be hidden.
#### Export
This will export a json file containing the database entries for this production that can be archived to another system along with the media files. The media files will have to be manually backed up from your server. Once you have backed up the json file and the media, you can delete the production.
#### Delete
This will delete the production and all the clips associated with it.
## Manage Users
### Edit Users
Select a user from the dropdown menu and you can assign the user to a group. You can also deactivate the user which will keep the account but not allow the user to log in. Or you can delete the user which will delete their account completely.
If the user was created by logging in via SSO, they will still be able to log in once they have been deleted. But they will have no permissions and won't be assigned to a group so will not have access to any productions.
You can enable the ability for users to scan or start a production transcoder. They will only be able to scan or transcode the productions they have access to.
Clicking on the number beside their name at the top will enter the impersonation for this user. This is useful if you need to check a user has the correct permissions.
You can add a local user by clicking the blue + button at the top.
### Edit Group Permissions
When a base production is added, a new group of the same name will be created.
From this page you can select a group and assign productions to it. Users assigned to this group will then be able to access these productions.
You can add a new group by clicking the blue + button at the top right.
From this page you can
## Settings
This will open the django admin setting page.
## Send Email
Here you can send an email to registered users.
Either select an existing email draft or click new to create a new one.
This will take you to the editor page. Set the Subject at the top, then select a date and time to send the email. Not setting this will send immediately.
Select the recipients of the email and draft the email below.
The editor is a WYSIWYG editor so the email body will appear exactly as it does in this editor. You can add images and graphics to the email body should you wish.
Click save and preview. This will show you a copy of what the email will look like when sent. You will be able to either schedule the send or edit the email again after this point.
Click Delete to delete the email draft.
## Clear Cache
This clears the cache of the system. Useful if there have been large database changes. By default the system caches data for around 10 minutes.
Users may have to force refresh their browser to clear their local cache if the changes aren't appearing for them.

View File

@@ -1,4 +1,69 @@
---
title: Admin Settings
#next: /docs/Installation/database
---
title: Django Admin Settings
next: /docs/setup/admin_frontend
---
The admin settings page is where you can change almost everything. If it's in the database, it's likely you can make changes here.
## System Settings
# Whisper Model
[See here for more information](https://github.com/openai/whisper?tab=readme-ov-file#available-models-and-languages)\
Default: small
| Size | Parameters | English-only model |Multilingual model |Required VRAM |Relative speed |
| --------- | ------------- | --------------------- | --------------------- | ------------- | -------------- |
| tiny | 39 M | tiny.en |tiny | ~1 GB | ~10x |
| base | 74 M | base.en |base | ~1 GB | ~7x |
| small | 244 M | small.en |small | ~2 GB | ~4x |
| medium | 769 M | medium.en |medium | ~5 GB | ~2x |
| large | 1550 M | N/A |large | ~10 GB | 1x |
| turbo | 809 M | N/A |turbo | ~6 GB | ~8x |
## Authentication and Authorization
Here you can manage the advanced settings of the users and Groups. Most of these settings can be changed from the front end without coming into the Django Admin page.
## Impersonate
Here you can view the logs for the impersonation.
## Periodic Tasks.
These are created when installed. Should you wish to change the time the tasks run, you would do so in the Periodic Tasks section.
### Clocked
These run once at a specific date and time.
### Cron Tabs
This is where you can set advanced schedules using cron. [See here for more information about Cron](https://crontab.guru/)
### Intervals
These will allow you to let a task run at specific intervals, e.g. run once every hour.
### Periodic Tasks
This is where you register or change the tasks, To change the schedule, you will need to create the schedule using one of the above options and then select it in this page.
You can also enable and disable tasks here as well as override the priority of the task.
## Review
### Review Files
This is where you can see all the files that have been uploaded for review. You can retranscode or delete the files from here.
### Share Links
Add, edit or delete the share links for files here.
## Rushes Management
You can make changes to the metadata of the clips or add or remove the productions here. But most of these tasks can and should be done in the front end.
### Base Productions
Add or edit the base productions. You can also change the group that the Base Production is assigned to.
### Production
Here you can make changes to the production such as the name, friendly name, filepath etc. You can also trigger some tasks from this page such as the file scan or the transcoder.
### clips
Here you can see and edit all the metadata for the clips in the Glympse database.
## Transcribe
### Clips for Transcription
Here you can see all of the clips that have been sent to the transcription engine. You can trigger tasks such as re-transcribe or delete the files from here.