Merge branch 'master' of gitlab.com:shockrah/clippable

This commit is contained in:
shockrah 2021-10-20 21:27:46 -07:00
commit 71407b9202
6 changed files with 67 additions and 29 deletions

View File

@ -1,28 +1,30 @@
image: rustlang/rust:nightly
stages:
- deploy
- pages
- build
# Builds out the intended zip package
#package:
# stage: build
# script:
# - rustup default nightly
# - mkdir -p build
# - cp api/templates/ api/static/ build -r
# - cargo build --release
# - cp target/release/api build/server
# - cp ./scripts/generate-thumbnail.sh build/
# - cp readme.md build/
# - sh ./scripts/default-rocket-toml.sh
# artifacts:
# paths:
# - build/
package:
stage: build
script:
- rustup default nightly-2021-09-18
- mkdir -p build
- cp api/templates/ api/static/ build -r
- cargo --version
- cargo build --release
- cp target/release/api build/server
- cp ./scripts/generate-thumbnail.sh build/
- cp readme.md build/
- sh ./scripts/default-rocket-toml.sh
artifacts:
paths:
- build/
pages:
image: shockrah/website:latest
stage: deploy
stage: pages
before_script:
- git submodule init
- git submodule update

8
Dockerfile Normal file
View File

@ -0,0 +1,8 @@
FROM debian:sid-slim
# Default daniel dirs
RUN mkdir -p /media/clips /media/thumbnails
COPY build/ /app
WORKDIR /app
ENTRYPOINT [ "/app/server" ]

View File

@ -1,3 +0,0 @@
Signature: 8a477f597d28d172789f06886806bc55
# This file is a cache directory tag created by cargo.
# For information about cache directory tags see https://bford.info/cachedir/

View File

@ -12,8 +12,34 @@ You can post whatever you want because its your content, your site, your rules.
# How does it work?
Clips are organized into categories(folders)....
Well clips that you upload to your server are organized into categories and
served from there. Categories can have thumbnails too so they look distinct
but that's up to you to setup.
That's it.
# Can I make a script to get videos?
Categories can have thumbnails too so they look distinct but that's up to you.
Sure the public API is actually really simple:
These are basically all the routes you'll need
* GET `/api/categories/list`
Lists out the categories available
* GET `/api/category/<category-name>`
Lists out the videos for that given category
* GET `/video/<category>/<file>`
Fetches the video file itself named by `file`
# How easy is it to upload videos?
Right now you just need to drop a video file into a sub-folder of your server's
videos directory. So if you had `/media/videos` then you would put a video into
a folder like `/media/videos/cool-clips/` or whatever else it's named.
Currently I'm working on making a simple clip-uploading tool that would also take
care of generating the appropriate thumbnails for you.

View File

@ -2,10 +2,18 @@
A small self hostable alternative to streamable. Built with Rocket.rs
## Status
## Testing
Right now the public API is being built so that as long as there videos to serve
the application should serve
A docker container is provided:
* `docker pull registry.gitlab.com/shockrah/clippable:latest`
Below is the suggested way test things out
* `docker run --rm -p 8482:8482 -it -v /path/to/clips:/media/clips -v /path/to/thumbnails:/media/thumbnails`
**NOTE**: Without proper thumbnails you get the "404" gif everywhere but the
videos will still be there.
## Admin Setup/Configuration
@ -28,6 +36,3 @@ must be ran in order to ensure that output directory is present and compilation
succeeds. There are no dependencies and is only written in typescript to
enforce some level of consistency among contributor code.
## Roadmap
_Check the /roadmap.md_

View File

@ -8,7 +8,7 @@ port = 8482
keep_alive = 5
read_timeout = 5
write_timeout = 5
log = "critical"
log_level = "critical"
limits = { forms = 4096 }
# Must be type <integer> (below is not valid toml syntax)