Commit Graph

107 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
decentral1se aa7d2da45b Add curl as dependency to allow for healthchecks
Closes https://github.com/Chocobozzz/PeerTube/issues/4045.
2021-05-07 09:03:10 +02:00
Arthur Lutz 5328532adf [support/docker] expose webtorrent setting in os variable settings 2021-03-29 17:01:17 +02:00
Chocobozzz ada9762f81
Add build-essentials if architecture not supported
bcrypt needs to be built on arm64 for example
2021-03-05 10:18:19 +01:00
Chocobozzz 18ffaf2430
Remove traefik doc: we don't use it anymore 2021-02-12 10:18:24 +01:00
Chocobozzz 9162476fe9
Support NodeJS 14 and 15, deprecate Node 10 2021-02-04 14:31:18 +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 a461418320
Support live port in docker compose 2021-01-07 11:18:47 +01:00
Chocobozzz 94f2bbe90b
Fix docker webserver build 2021-01-07 09:06:21 +01:00
Chocobozzz 0a0e0d082f
Fix docker nginx container if peertube restarts 2021-01-05 09:52:14 +01:00
Chocobozzz afd4ee86dd
Remove traefik docker support 2020-12-30 17:06:21 +01:00
Rigel Kent 08d70fe606
export rtmp port in dockerfiles
follows #3341
2020-11-21 17:32:56 +01:00
Rigel Kent a30995fc27
consistent documentation and configuration in compose file 2020-11-11 16:45:46 +01:00
Rigel Kent b8f3e6b00b
move traefik to its own override file 2020-11-11 16:45:46 +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
Kim 0283fe98b8
fix opendkim permissions in docker-compose setup (#2868)
Co-authored-by: kimsible <kimsible@users.noreply.github.com>
Co-authored-by: Rigel Kent <par@rigelk.eu>
2020-06-12 13:55:40 +02:00
Kim 148ab2f0f0
Fixes docker-compose .env (#2538)
* chore: remove unused var

* fix database name as peertube + update comments

* chore: comment vars indentic to production.yrml

* add smtp comment

* clarify and detail comments

Co-authored-by: kimsible <kimsible@users.noreply.github.com>
2020-05-18 17:50:58 +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
kimsible cd7ec86f5c feat: add dkim to docker-compose 2020-03-11 15:02:13 +01: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
Chocobozzz 8d3fe90c3f
Add missing ca-certificates in docker image 2020-02-17 10:34:09 +01:00
Kim c5621bd23b
Fix missing python dependency in Dockerfile.buster (#2495)
* Fix missing youtube-dl dependency in buster docker image

* Fix missing python dependency in buster docker image
2020-02-17 10:01:22 +01:00
Chocobozzz 751c8f68ec
Add openssl in docker container 2020-01-27 15:07:01 +01:00
Chocobozzz c82bf36a3f
Docker: stretch -> buster 2019-12-12 09:49:31 +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
Felix Ableitner 244e955e4e Simplify Dockerfile and slim Docker image 2019-12-04 08:43:58 +01:00
Leopere e2882b2ccb Sticking to one env-var management system (#2247)
* Sticking to one env-var management system

Starting with the Postgres container so that you only have to set overlapping environment variables in one place.

* Moving Postfix envvars pt 1

* Moving Postfix envvars pt 2 .env file

* Added missing envvars.

* Adding functioning glue

Suggest something better if you wish.

* removed IP from example

* Removed default network from update.
2019-11-18 09:38:05 +01:00
Chocobozzz f1b3888392
Fix traefik version in docker compose 2019-10-21 11:17:49 +02:00
Chocobozzz 51c3544718
Deprecate Node 8
The support ends on December 2019: https://github.com/nodejs/Release#release-schedule
2019-08-07 12:07:59 +02:00
Chocobozzz 345da516fa WIP plugins: add ability to register plugins 2019-07-24 10:58:16 +02:00
Chocobozzz 297067399d
yarn -> npm in dockerfile 2019-07-08 16:09:13 +02:00
Jacen 7593d9f872 replace npm and apt-get by yarn and apt in dockerfile.stretch (#1952)
* replace npm and apt-get by yarn and apt in dockerfile.stretch

* keep consistancy
2019-07-08 16:07:58 +02:00
Chocobozzz ad3405d087
Improve 4K video quality after transcoding 2019-06-06 14:45:57 +02:00
Felix Ableitner 1bab2bbc11 Fix docker-compose setup so Peertube sees correct IP 2019-05-21 16:59:42 +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 f2e0cca90b
Add host network mode for reverse proxy 2019-04-24 16:28:56 +02:00
Antoine Millet 9c85ee2ed0 Add argument to dockerfile to pass options to npm run build 2019-04-24 16:20:41 +02:00
Chocobozzz 31b6ddf866
Add ability to disable tracker 2019-04-10 09:23:18 +02:00
Felix Ableitner b427febb4d Fix problem with SMTP in default docker-compose setup 2019-03-11 09:38:20 +01:00