Get Started

Prerequisites

Make sure you have the latest Dockeropen in new window installed.

Setup with a compose file

Create a file named docker-compose.yaml with the following content.

version: "3.8"
services:
  api:
    image: kirari04/videocms:alpha
    restart: unless-stopped
    ports:
      - "81:3000"
    networks:
      - videocmsnet
    environment:
      - Host=:3000 # [optional] on what port the container exposes the api
      - FolderVideoQualitysPriv=./videos/qualitys # [optional] where the videos are stored inside the container
      - FolderVideoUploadsPriv=./videos/uploads # [optional] where the uploads are stored inside the container
      - StatsDriveName=nvme0n1 # [optional] the drive name where the uploads & videos are stored (for stats on dashboard)
    volumes:
      - ./videos:/app/videos
      - ./database:/app/database
  panel:
    image: kirari04/videocms:panel
    restart: unless-stopped
    ports:
      - "80:3000"
    networks:
      - videocmsnet
    environment:
      - NUXT_PUBLIC_API_URL=http://127.0.0.1:81/api # the url of the api
      - NUXT_PUBLIC_BASE_URL=http://127.0.0.1:81 # the base url of the api server
      - NUXT_PUBLIC_NAME=VideoCMS  # the name of the project
networks:
  videocmsnet:
    driver: bridge

Run in the same directory the following command to start the application.

docker compose up -d

Create User

Currently creating a user is only possible using the cli.

Because of that we have to identify our api container first.

docker ps

Example

docker ps

CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                                                            NAMES
4a840427cc53   kirari04/videocms:panel         "bun run .output/ser…"   53 seconds ago   Up 52 seconds   0.0.0.0:80->3000/tcp, :::80->3000/tcp                                                            videocms-docs-panel-1
78bfbdec7bc4   kirari04/videocms:alpha         "./main.bin serve:ma…"   53 seconds ago   Up 52 seconds   0.0.0.0:81->3000/tcp, :::81->3000/tcp

Copy the container id from the container where the image says kirari04/videocms:alpha and run the following command.

docker exec -it <container-id> /app/main.bin create:user

Example

docker exec -it 78bfbdec7bc4 /app/main.bin create:user

Enter Username: root
Enter Password: 
Enter IsAdmin[yes|no]: yes
Created user:  1 root

Modify Settings (Security)

Now you can open the panel on http://127.0.0.1/loginopen in new window and login using the account credentials you just created in the previous step.

Next you will have to navigate to the Config Pageopen in new window.

Replace the Values of JwtSecretKey and JwtUploadSecretKey with a random string that can be up to 512 characters.

Replace the Value of BaseUrl to the url of your server.

Make sure to save the changes using the save button at the bottom of the page.

Make the keys of 32 or longer length so its more difficult to guess. You can use a random password generator like the one from Bitwardenopen in new window.

After modifying the settings you should restart the contaiers.

docker compose down
docker compose up -d

Start Sharing Videos

You can now navigate to the Video Pageopen in new window and start uploading your first clip by pressing start upload.

Upload Example

After the upload has finished you can close the Upload Manager and press on the refresh button.

The Video will show up in the list and if you click on it you get some more detailed informations.

Video Info Example

Last Updated:
Contributors: kingjulienboss, kirari04