Commit Graph

52 Commits (0305db28c98fd6cf43a3c50ba92c76215e99d512)

Author SHA1 Message Date
Jelle Besseling 0305db28c9
Add support for saving video files to object storage (#4290)
* Add support for saving video files to object storage

* Add support for custom url generation on s3 stored files

Uses two config keys to support url generation that doesn't directly go
to (compatible s3). Can be used to generate urls to any cache server or
CDN.

* Upload files to s3 concurrently and delete originals afterwards

* Only publish after move to object storage is complete

* Use base url instead of url template

* Fix mistyped config field

* Add rudenmentary way to download before transcode

* Implement Chocobozzz suggestions

https://github.com/Chocobozzz/PeerTube/pull/4290#issuecomment-891670478

The remarks in question:
    Try to use objectStorage prefix instead of s3 prefix for your function/variables/config names
    Prefer to use a tree for the config: s3.streaming_playlists_bucket -> object_storage.streaming_playlists.bucket
    Use uppercase for config: S3.STREAMING_PLAYLISTS_BUCKETINFO.bucket -> OBJECT_STORAGE.STREAMING_PLAYLISTS.BUCKET (maybe BUCKET_NAME instead of BUCKET)
    I suggest to rename moveJobsRunning to pendingMovingJobs (or better, create a dedicated videoJobInfo table with a pendingMove & videoId columns so we could also use this table to track pending transcoding jobs)
    https://github.com/Chocobozzz/PeerTube/pull/4290/files#diff-3e26d41ca4bda1de8e1747af70ca2af642abcc1e9e0bfb94239ff2165acfbde5R19 uses a string instead of an integer
    I think we should store the origin object storage URL in fileUrl, without base_url injection. Instead, inject the base_url at "runtime" so admins can easily change this configuration without running a script to update DB URLs

* Import correct function

* Support multipart upload

* Remove import of node 15.0 module stream/promises

* Extend maximum upload job length

Using the same value as for redundancy downloading seems logical

* Use dynamic part size for really large uploads

Also adds very small part size for local testing

* Fix decreasePendingMove query

* Resolve various PR comments

* Move to object storage after optimize

* Make upload size configurable and increase default

* Prune webtorrent files that are stored in object storage

* Move files after transcoding jobs

* Fix federation

* Add video path manager

* Support move to external storage job in client

* Fix live object storage tests

Co-authored-by: Chocobozzz <me@florianbigard.com>
2021-08-17 08:26:20 +02:00
Rigel Kent 37ede348bb
(doc) add note in config that tmp is also used while processing 2021-06-08 11:45:03 +02:00
Johan Fleury 383fea89f0 Allow setting log level using PEERTUBE_LOG_LEVEL envvar 2021-06-02 09:43:13 +02:00
Chocobozzz 31a911190b
Fix broadcast message log level 2021-05-25 11:35:29 +02:00
Stakovicz 78c5e31049
Allow SSL database parameter (#4114)
* Allow SSL database parameter

Allow SSL database parameter via environment variable

* Allow SSL database parameter 

Allow SSL database parameter via environment variable

* Update support/docker/production/config/custom-environment-variables.yaml

Co-authored-by: Chocobozzz <chocobozzz@cpy.re>

Co-authored-by: Chocobozzz <chocobozzz@cpy.re>
2021-05-25 11:35:29 +02:00
Chocobozzz cb4bab61c1
Fix logger warning level 2021-05-14 14:17:53 +02:00
Arthur Lutz 5328532adf [support/docker] expose webtorrent setting in os variable settings 2021-03-29 17:01:17 +02:00
Chocobozzz 18ffaf2430
Remove traefik doc: we don't use it anymore 2021-02-12 10:18:24 +01:00
Johan Fleury 12c1e38df2 feat: allow administrator to disable logging of ping requests 2021-01-13 09:14:43 +01:00
Rigel Kent b7085c7132 add support for 1440p (Quad HD/QHD/WQHD) videos 2021-01-13 09:14:09 +01:00
Chocobozzz afd4ee86dd
Remove traefik docker support 2020-12-30 17:06:21 +01:00
Rigel Kent e604efcb71
Do not expose containers by default in traefik 2020-11-11 16:45:46 +01:00
Rigel Kent 1a9b141d83
Add nginx behind traefik in docker-compose + image updates
- support/docker/production/docker-compose.yml: addition of a nginx
image reusing support/nginx/peertube nginx conf to improve performance,
and lessen setup differences between the docker-compose install and the
typical production install.
- support/docker/production/docker-compose.yml: postgres 10 -> postgres
12, redis 4 -> redis 5. Postgres major updates implies manual upgrade.
- support/nginx/peertube: HTTP -> HTTPS redirection is now commented
by default, to allow its reuse in support/docker/production/docker-compose.yml.
2020-11-11 16:45:46 +01:00
Chocobozzz b0ce7c39dc
Add ssl support to postgresql 2020-08-24 11:38:57 +02:00
Kim caf2aaf4f9
Add ability to override client assets : logo - favicon - PWA icons - PWA manifest name and description (#2897)
* Add client-overrides storage to config

* Add static-serve for client overrides

* Move backgroun-image logo from bundle to css tag for runtime content hash

* Add dynamic JSON manifest

* Add content hash for manifest, favicon and logo

Co-authored-by: kimsible <kimsible@users.noreply.github.com>
2020-07-10 10:20:11 +02:00
Girish Ramakrishnan 6ee7221117 Add database.name config option
If database.name is set, we use it as the complete database name.
If unset, we use the "peertube"+database.suffix as the complete database
name.

Fixes #1620
2020-06-25 08:48:44 +02:00
Chocobozzz 4fd98756e2
Correctly fix docker storage config 2020-04-02 13:59:01 +02:00
xcffl a3188ba768 Move streaming-playlists to /data 2020-04-02 13:55:58 +02:00
Kim e962e1c3c5
Chore/docker-documentation-improvements (#2494)
* unify env_var names to replace

* detail more and improve docker doc

* fix title

* move acme email and domains to traefik command

* add details about TRAEFIK_ACME_* variables

* Fix preview links from /develop to /master
2020-02-24 15:30:14 +01:00
Ben Lubar 7269868682 Add support for HLS in the Docker container. (#2324)
* Add support for HLS in the Docker container.

* Remove comment from Dockerfile.stretch
2019-12-12 09:41:52 +01:00
Chocobozzz 345da516fa WIP plugins: add ability to register plugins 2019-07-24 10:58:16 +02:00
Chocobozzz ad3405d087
Improve 4K video quality after transcoding 2019-06-06 14:45:57 +02:00
Yohan Boniface c342726ad4 Allow to control RATES_LIMIT from configuration (#1787)
* Allow to control RATES_LIMIT from configuration

* @Chocobozzz review (squash me)
2019-04-26 13:48:55 +02:00
Chocobozzz 31b6ddf866
Add ability to disable tracker 2019-04-10 09:23:18 +02:00
Chocobozzz 539d3f4faa
BREAKING: update CSP configuration
Disable it by default and add ability to specify a custom report uri
2019-02-21 16:28:53 +01:00
Chocobozzz a4101923e6
Implement contact form on server side 2019-01-10 11:32:37 +01:00
Rigel Kent 5e755fff9d add Content Security Policy (#1252)
* add Content Security Policy

* remove reflect-metadata on production builds to get rid of unsafe-eval

* fix baseCSP usage

* add SRI to CSP

* add blob: to media-src

* remove SRI

* CSP set to reportOnly

* adding data: to connect-src CSP

* remove block-all-mixed-content

* add report-uri support
2018-12-13 09:49:45 +01:00
Chocobozzz 6040f87d14
Add tmp and redundancy directories 2018-12-04 16:04:15 +01:00
Felix Ableitner fef13f1480 Various improvements for docker-compose 2018-11-21 16:21:42 +01:00
LecygneNoir eff7cdd7b7 Configure docker image to accept trust_proxy as an env variable in json array (#1338) 2018-10-22 19:11:01 +02:00
kaiyou 302e7b19da (docker) search and import settings env variables (#1210) 2018-10-07 15:04:38 +02:00
victor héry ff587059b9 Add possibility to manage trust_proxy list in docker image 2018-09-16 18:50:13 +02:00
kaiyou 6bd9f2f11d (docker) add quota to the docker configuration values (#964) 2018-08-26 11:16:16 +02:00
Chocobozzz 08c11bec43
Fix docker env file 2018-08-14 10:13:17 +02:00
Chocobozzz 40e87e9ecc Implement captions/subtitles 2018-07-16 11:50:08 +02:00
Rigel Kent 1dd59831f8 (docker) making security settings of traefik on par with nginx 2018-06-04 23:14:26 +02:00
Chocobozzz 18eb286e0b
Cleanup docker configuration 2018-05-30 08:39:44 +02:00
Pierre Jaury 51df0cf3d7 Do not set default transcoding resolutions 2018-05-30 08:33:19 +02:00
Pierre Jaury a4ac1c999e Allow to setup transcoding in the docker image 2018-05-30 08:33:19 +02:00
Chocobozzz 08806798d0
Add disable_starttls configuration variable for docker 2018-05-28 19:17:32 +02:00
Chocobozzz b44a96300c
Improve docker doc and fix missing keys on update 2018-05-28 11:36:27 +02:00
Chocobozzz fd5e57bbe2
Docker config directory as volume 2018-05-07 18:41:10 +02:00
Chocobozzz af111faf77
Fix docker production configuration 2018-05-07 15:26:28 +02:00
Pierre-Alain TORET cff8b272b1 Support hostname binding in config
* Add basic support for hostname binding

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>

* Make production example a bit more secure

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>

* Make example config files compatible with hostname binding modification

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>

* Fix typo

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>

* Bind on 127.0.0.1 by default

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>

* Update Docker configuration with hostname binding

Signed-off-by: Pierre-Alain TORET <pierre-alain.toret@protonmail.com>
2018-04-17 11:14:32 +02:00
Armando Lüscher 2920281946 Fix little typo in variable. 2018-03-30 08:34:36 +02:00
Chocobozzz 490b595a01
Prevent brute force login attack 2018-03-29 11:03:30 +02:00
Chocobozzz 95540ed23a
Prepare building docker files on docker hub 2018-03-23 11:22:26 +01:00
Chocobozzz bebf2d89d3
Add option to disable starttls 2018-03-22 16:12:52 +01:00
Benjamin Bouvier 3b2ed89181 [docker] Add short_description option in Docker configuration too; (#342) 2018-03-15 16:02:23 +01:00
Benjamin Bouvier ef48a0d50a [docker] Update production guidelines and docker-compose file; (#341) 2018-03-15 14:39:04 +01:00