44# If you want to use Invidious in production, see the docker-compose.yml file provided
55# in the installation documentation: https://docs.invidious.io/installation/
66
7- version : " 3"
87services :
9-
108 invidious :
9+ container_name : invidious
10+ hostname : invidious
11+ # image: quay.io/invidious/invidious:latest
1112 build :
1213 context : .
1314 dockerfile : docker/Dockerfile
1415 restart : unless-stopped
1516 ports :
16- - " 127.0.0.1: 3000:3000"
17+ - " 3000:3000"
1718 environment :
1819 # Please read the following file for a comprehensive list of all available
1920 # configuration options and their associated syntax:
@@ -26,19 +27,81 @@ services:
2627 host: invidious-db
2728 port: 5432
2829 check_tables: true
29- # external_port:
30- # domain:
31- # https_only: false
32- # statistics_enabled: false
33- hmac_key: "CHANGE_ME!!"
30+
31+ # IT is NOT recommended to use the same key as HMAC KEY. Generate a new key!
32+ # Use the key generated in the 2nd step
33+ invidious_companion_key: ksMXJJmbDiZLBmw8
34+ # URL used for the internal communication between invidious and invidious companion
35+ # There is no need to change that except if Invidious companion does not run on the same docker compose file.
36+ invidious_companion:
37+ - private_url: "http://companion:8282/companion"
38+
39+ # Reverse-proxy awareness
40+ #external_port: 443
41+ #domain: invidious-miraidon.pcscorp.dev
42+ https_only: false
43+
44+ # Server-wide flags (real, upstream-supported)
45+ hmac_key: "gf35h462Fe24g4tu46beg4"
46+ registration_enabled: true
47+ captcha_enabled: false
48+ admins: ["norkz"]
49+
50+ pages_enabled:
51+ popular: false
52+ trending: false
53+ search: false
54+
55+ # ↓ These MUST be nested here, not at top level
56+ default_user_preferences:
57+ player_style: youtube
58+ save_player_pos: true
59+ # Hide Popular/Trending from the menu by not listing them
60+ feed_menu: ["Subscriptions", "Playlists"]
61+ # Use literal string "<none>" to show no feed by default
62+ default_home: "<none>"
63+ related_videos: false
3464 healthcheck :
35- test : wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/stats || exit 1
65+ test : wget -nv --tries=1 --spider http://127.0.0.1:3000/ || exit 1
3666 interval : 30s
3767 timeout : 5s
3868 retries : 2
69+ depends_on :
70+ invidious-db :
71+ condition : service_healthy
72+ networks :
73+ - proxy
74+
75+ companion :
76+ image : quay.io/invidious/invidious-companion:latest
77+ environment :
78+ # Use the key generated in the 2nd step
79+ - SERVER_SECRET_KEY=ksMXJJmbDiZLBmw8
80+ restart : unless-stopped
81+ # Uncomment only if you have configured "public_url" for Invidious companion
82+ # Or if you want to use Invidious companion as an API in your program.
83+ # Remove "127.0.0.1:" if used from an external IP
84+ ports :
85+ - 8282:8282
86+ logging :
87+ options :
88+ max-size : " 1G"
89+ max-file : " 4"
90+ cap_drop :
91+ - ALL
92+ read_only : true
93+ # cache for youtube library
94+ volumes :
95+ - companioncache:/var/tmp/youtubei.js:rw
96+ security_opt :
97+ - no-new-privileges:true
98+ networks :
99+ - proxy
39100
40101 invidious-db :
41102 image : docker.io/library/postgres:14
103+ container_name : invidious-db
104+ hostname : invidious-db
42105 restart : unless-stopped
43106 volumes :
44107 - postgresdata:/var/lib/postgresql/data
@@ -50,6 +113,14 @@ services:
50113 POSTGRES_PASSWORD : kemal
51114 healthcheck :
52115 test : ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
116+ networks :
117+ - proxy
53118
54119volumes :
55120 postgresdata :
121+ companioncache :
122+
123+ networks :
124+ proxy :
125+ driver : bridge
126+ external : true
0 commit comments