Compare commits

..

168 Commits

Author SHA1 Message Date
Jorrin
c210252d9d Merge pull request #76 from VishnuSrivatsava/patch-1
Update streaming.mdx
2024-04-21 10:22:24 +02:00
Vishnu Srivatsava
68764710bd Update streaming.mdx
Incorrect spelling of the word "choice"
2024-04-21 08:08:44 +05:30
Jorrin
a9f77c1931 Merge pull request #75 from TheScreechingBagel/patch-1
change bmov link
2024-04-21 01:39:53 +02:00
Screeching Bagel
90bdfba0a5 change bmov link
(old one will continue to work)
2024-04-20 16:38:35 -07:00
William Oldham
1286ecd91e Merge pull request #74 from movie-web/4.7.0
Version 4.7.0
2024-04-14 22:02:35 +01:00
Jorrin
c1a9d727b8 Update changelog.mdx 2024-04-14 23:00:22 +02:00
William Oldham
a53847ab8d Merge pull request #73 from movie-web/feat/autoplay
Add documentation for the `VITE_ALLOW_AUTOPLAY` environment variable
2024-04-14 21:44:02 +01:00
qtchaos
e1cb13704e feat: VITE_ALLOW_AUTOPLAY 2024-04-14 23:37:50 +03:00
William Oldham
8cb77fd706 Remove PR text in instance page 2024-04-09 22:00:31 +01:00
William Oldham
c762550a97 Merge pull request #71 from superlincoln953/patch-1
I Improved Method 1 to enable Automatic update of the user's Instance.
2024-04-07 09:45:49 +01:00
William Oldham
825fd52019 Apply suggestions from code review 2024-04-07 09:43:56 +01:00
superlincoln953
2b217c42f3 emove the Vercel deploy button and just tell people how to set it up from scratch with a fork 2024-04-07 14:58:52 +08:00
superlincoln953
5978f8d500 I Improved Method 1 to enable Automatic update of the user's movie web instance
This improved method 1 will ensure that the user's self-hosted instance will be up-to-date with the latest features and bug fixes if the user set it up correctly and not make any mistakes.
2024-04-07 00:58:37 +08:00
William Oldham
3dcfde8a88 Merge pull request #70 from movie-web/binaryoverload-patch-1
Change Lonelil domain
2024-04-05 22:36:53 +01:00
William Oldham
0b13093f8c Change Lonelil domain 2024-04-05 22:36:12 +01:00
William Oldham
6ecee303ba Merge pull request #69 from movie-web/4.6.6
Version 4.6.6
2024-04-05 22:34:41 +01:00
Jorrin
b27e17b14f Update changelog.mdx 2024-04-05 20:13:01 +02:00
William Oldham
1ad220b1a1 Merge pull request #68 from movie-web/4.6.5
Version 4.6.5
2024-03-31 23:39:38 +01:00
Jorrin
4c4d86a33c Update changelog.mdx 2024-04-01 00:30:08 +02:00
Jorrin
03f4e1827b Merge pull request #67 from movie-web/4.6.4
Version 4.6.4
2024-03-31 21:07:19 +02:00
Jorrin
85147d77d7 forgot translations 2024-03-31 21:05:44 +02:00
Jorrin
ad909170c2 Update changelog.mdx 2024-03-31 21:02:30 +02:00
chaos
4038823d1b Merge pull request #66 from mrjvs/update-guider
Update Guider version
2024-03-31 20:25:41 +03:00
mrjvs
118315cf50 Update Guider version 2024-03-31 19:24:24 +02:00
William Oldham
4c81431dda Fix upgrade guide and add warning 2024-03-31 17:02:53 +01:00
William Oldham
b172b52723 Update upgrade guide 2024-03-31 16:51:06 +01:00
William Oldham
cd1869f955 Merge pull request #63 from mrjvs/migrate-to-guider
Migrate to Guider
2024-03-31 16:30:14 +01:00
William Oldham
f5e222ca6f Merge branch 'master' into migrate-to-guider 2024-03-31 16:21:06 +01:00
William Oldham
1c203ab481 Create linting workflow 2024-03-31 16:20:49 +01:00
mrjvs
f42b3b2592 Fix linting 2024-03-31 17:17:44 +02:00
mrjvs
d1379785ba Update guider version 2024-03-31 16:52:05 +02:00
mrjvs
475687849a Merge branch 'master' into migrate-to-guider 2024-03-31 03:29:55 +02:00
mrjvs
16421e55a4 Fix by caused by toon's yelling 2024-03-31 03:27:22 +02:00
Jorrin
7a5c05b2e3 Merge pull request #64 from sussy-code/master
Mr Toon Requested I Fix This
2024-03-31 03:21:05 +02:00
Cooper Ransom
10762c8653 Toon keeps yelling :3 2024-03-30 21:07:04 -04:00
mrjvs
6723047b99 Fix weird codeblock 2024-03-31 03:03:04 +02:00
mrjvs
561c3a04b3 Fix links and anchors 2024-03-31 03:02:57 +02:00
mrjvs
b5b8bb8de1 Host on subdirectory 2024-03-31 01:36:14 +01:00
mrjvs
5fcfcc85b7 Add favicon back + fix title template 2024-03-31 01:33:03 +01:00
mrjvs
f7125538f7 Add meta tags and title template 2024-03-31 01:28:50 +01:00
mrjvs
f718f077b4 Add folder redirects 2024-03-31 01:28:28 +01:00
Cooper Ransom
63db69cab8 Change self hoster to Contributor and add new github 2024-03-30 19:00:35 -04:00
mrjvs
46e06096fc Add layout settings 2024-03-30 21:25:15 +01:00
mrjvs
8108d28feb Make all pages MDX compliant + added logo back 2024-03-30 21:10:20 +01:00
mrjvs
268014552c Port all documents to MDX 2024-03-30 20:34:50 +01:00
mrjvs
c06bedc93c Add basic Guider project and remove Nuxt content 2024-03-30 20:22:43 +01:00
Jorrin
e10040dc40 Merge pull request #62 from sussy-code/master
Fix Mr. Toons problem
2024-03-30 18:47:20 +01:00
Cooper Ransom
220b21a392 Merge remote-tracking branch 'movie-web/master' 2024-03-30 13:44:53 -04:00
Cooper Ransom
ebd53214fd Toon yelled at me :3 2024-03-30 13:42:47 -04:00
William Oldham
fb6531640d Merge pull request #59 from sussy-code/master
Add "Keeping your instance synced" section to "Upgrade Guide" page
2024-03-30 11:51:28 +00:00
William Oldham
59ee00a876 Update content/3.client/5.upgrade.md 2024-03-30 11:50:29 +00:00
William Oldham
ca6195fd1d Merge branch 'master' into master 2024-03-30 09:02:44 +00:00
Pokey
19c065f4f0 Add a full self deployment docker file (#58)
* Created 2.selfhost.md

Added a docker compose file that hosted all of movie-web

* Update 2.selfhost.md - changed to example.tld rather than what it was before

Changed the domain to example.tld

* type errors/5.extra/2.selfhost.md

Co-authored-by: William Oldham <github@binaryoverload.co.uk>

* Update content/5.extra/2.selfhost.md

added -backend to movie-web

Co-authored-by: William Oldham <github@binaryoverload.co.uk>

* removed unneeded port exposure.selfhost.md

* Update content/5.extra/2.selfhost.md

* Update content/5.extra/2.selfhost.md

* Update content/5.extra/2.selfhost.md

---------

Co-authored-by: William Oldham <github@binaryoverload.co.uk>
2024-03-30 09:02:11 +00:00
William Oldham
d59b5cc762 Merge pull request #61 from movie-web/4.6.3
Version 4.6.3
2024-03-29 17:56:02 +00:00
Jorrin
d00bfbf5c0 Update 4.changelog.md 2024-03-29 18:52:41 +01:00
William Oldham
295a9768af Merge pull request #60 from TheScreechingBagel/patch-1
recommend netlify and fix link
2024-03-29 07:41:07 +00:00
Screeching Bagel
d17d887ac8 recommend netlify and fix link
link was broken anyway
2024-03-28 23:37:24 -07:00
Cooper Ransom
f51f91c88a Fix the action and give my boi Toon credit 2024-03-25 21:55:43 -04:00
Cooper Ransom
f18a2d3cbb Try to fix most of binarys issues 2024-03-25 21:03:45 -04:00
Captain Jack Sparrow
daf63550be Grammar police #2
Co-authored-by: Jorrin <43169049+JorrinKievit@users.noreply.github.com>
2024-03-22 20:46:09 -04:00
Captain Jack Sparrow
db6048efa5 Grammar police #1
Co-authored-by: Jorrin <43169049+JorrinKievit@users.noreply.github.com>
2024-03-22 20:45:58 -04:00
Cooper Ransom
352faef7c4 Implement Toon's yaml file 2024-03-22 20:45:11 -04:00
Cooper Ransom
eb067a5b90 Remove package-lock 2024-03-22 12:17:56 -04:00
Cooper Ransom
a4de3ddb31 Implement in upgrade guide 2024-03-22 12:16:19 -04:00
William Oldham
e91c046fad Merge pull request #56 from movie-web/4.6.2
Version 4.6.2
2024-03-14 23:28:50 +00:00
Jorrin
218221d639 update config defaults 2024-03-15 00:26:06 +01:00
Jorrin
0d926751c3 Version 4.6.2 2024-03-14 23:58:24 +01:00
Jorrin
bcc5b9c4f1 Merge pull request #55 from sudo-flix/master
Set my profile to sudo-flix github
2024-03-14 21:55:05 +01:00
sudo-flix
06d4cf0394 Merge branch 'movie-web:master' into master 2024-03-13 21:27:23 -04:00
Cooper Ransom
fcfde5cbcc Set itzcozi link to sudo-flix github 2024-03-13 21:25:23 -04:00
William Oldham
0fb2861625 Fix base url on favicon and cover image 2024-03-12 12:59:38 +00:00
William Oldham
1cf56756d3 Merge pull request #54 from movie-web/4.6.1
Version 4.6.1
2024-03-11 21:15:23 +00:00
William Oldham
0f89240ea4 Version 4.6.1 2024-03-11 20:20:44 +00:00
Jorrin
20e6e88718 Merge pull request #53 from qtchaos/docs/pwa-for-chaos-because-he-was-left-out
Add PWA emoji to watch.qtchaos.de
2024-03-11 19:35:33 +01:00
qtchaos
2dea0dab9c docs: pwa for chaos because he was left out 2024-03-11 20:30:49 +02:00
William Oldham
a81d7398cf Merge pull request #52 from movie-web/v4.6.0
Version 4.6
2024-03-10 23:31:00 +00:00
William Oldham
408140c645 Version 4.6 2024-03-10 23:27:21 +00:00
William Oldham
56fffa8e6b Merge pull request #50 from sudo-flix/master
Add pwa emojis to instances that support it
2024-03-10 23:26:09 +00:00
sudo-flix
8aa38f3cce Merge branch 'master' into master 2024-03-06 12:14:15 -05:00
William Oldham
b1492e7a9f Merge pull request #51 from Honkertonken/typo-fix
Various Typo Fixes
2024-03-06 10:16:25 +00:00
Honkertonken
9989fd8cc2 Update content/3.client/4.changelog.md
Co-authored-by: William Oldham <github@binaryoverload.co.uk>
2024-03-06 15:46:05 +05:30
Honkertonken
fbf4648932 Update 4.changelog.md 2024-03-06 15:40:20 +05:30
Honkertonken
c83a7fa616 Update 2.configuration.md 2024-03-06 15:39:53 +05:30
sudo-flix
44e395eb21 Merge branch 'master' into master 2024-03-05 19:49:23 -05:00
Cooper Ransom
16f16a076f add pwa emojis 2024-03-05 19:45:31 -05:00
William Oldham
25adb1e20f Merge pull request #49 from zisra/patch-1
Real formatting
2024-03-05 21:12:39 +00:00
zisra
425d9028a0 Update 0.instances.md 2024-03-05 15:09:59 -06:00
zisra
e757c8046b Update 0.instances.md 2024-03-05 15:05:07 -06:00
zisra
08969d16e5 Update 0.instances.md 2024-03-05 15:02:03 -06:00
William Oldham
2ef0cd5cd1 Merge pull request #32 from Audiosutras/master
Update client docs - 3rd option docker compose
2024-03-05 18:50:30 +00:00
Christopher Dixon
ab0bf06a00 review 2: client docs 2024-03-05 09:27:57 -05:00
Audiosutras
91ad96ea92 Merge branch 'master' into master 2024-03-05 09:23:39 -05:00
William Oldham
07709a5b77 Merge pull request #48 from Pokeylooted/patch-1
More indepth steps for selfhosting backend
2024-03-05 00:19:37 +00:00
Pokey
5a1f212c5d Fix duplication 2024-03-04 18:18:43 -06:00
Pokey
f0b56274d7 Make CORS variable info more specific 2024-03-04 18:15:33 -06:00
Pokey
5597d2f17a Added cloudflare zero trust docs 2024-03-04 18:12:55 -06:00
Pokey
74335dc29d removed duplicated railway 2024-03-04 17:40:41 -06:00
Pokey
209cf4e5bc Apply suggestions from code review
Co-authored-by: William Oldham <github@binaryoverload.co.uk>
2024-03-04 17:32:23 -06:00
Pokey
830f901944 Merge branch 'master' into patch-1 2024-03-04 01:59:45 -06:00
William Oldham
cfb51e7797 Merge pull request #43 from sudo-flix/master
Turn list into a table and place Isra above Toon...
2024-03-04 07:19:03 +00:00
Pokey
59ef01d5b1 Added more useful MWB Enviornment Variables 2024-03-03 21:56:37 -06:00
Pokey
2f4de94ec6 Update 1.deploy.md add more info
Add more thorough guide for selfhosting
2024-03-03 21:44:09 -06:00
sudo-flix
69efe88f43 Merge branch 'master' into master 2024-03-02 23:37:25 -05:00
Cooper Ransom
c8bd898fd2 Move community backend section below community instances 2024-03-02 22:01:27 -05:00
Jorrin
9ea0b2cdba Merge pull request #45 from MovieWebIPFS/patch-1
docs: latest movie-web.x now uses the Loneli backend
2024-03-02 17:38:09 +01:00
MovieWebIPFS
104e6cff61 docs: latest movie-web.x now uses the Loneli backend 2024-03-02 16:36:29 +00:00
Cooper Ransom
30bd6dde4f Remove package-lock.json (i am so dumb) 2024-03-01 16:43:25 -05:00
Jorrin
4d7a7abfe9 Merge pull request #40 from blikje7up/master
Recommended Community Backend Lonelil
2024-03-01 21:35:16 +01:00
Cooper Ransom
14ccc4cdf7 Turn list into a table and place Isra above Toon... 2024-03-01 15:23:39 -05:00
William Oldham
a924d36ae2 Merge pull request #41 from sudo-flix/patch-1
Sort instances!
2024-03-01 17:22:36 +00:00
Cooper Ransom
5f643c271e Fix overlooked sorting issue 2024-03-01 11:49:44 -05:00
Cooper Ransom
b7c0253f5d fix overzealous additions 2024-03-01 11:44:16 -05:00
sudo-flix
c7382997bf Sort instances!
sort instances. 
https://discord.com/channels/871713465100816424/871713465578979351/1213121106286878771
2024-03-01 11:18:30 -05:00
blikje7up
7c4cbdf023 Recommended Community Backend Lonelil 2024-03-01 15:53:05 +01:00
William Oldham
23c6373b66 Merge pull request #39 from qtchaos/docs/netlify-proxy
Recommend Netlify instead of Cloudflare
2024-03-01 14:03:35 +00:00
qtchaos
861e30d79f docs: recommend netlify instead of cf 2024-03-01 15:58:32 +02:00
Audiosutras
d9601d5446 Merge branch 'master' into master 2024-03-01 08:38:24 -05:00
Christopher Dixon
5df6e1d646 let users now how to update the container 2024-02-29 19:46:36 -05:00
Christopher Dixon
1180d0d189 update build.context 2024-02-29 19:35:02 -05:00
William Oldham
0f2f09b96d Merge pull request #37 from movie-web/4.5.1
Version 4.5.1: Changelog
2024-02-29 23:29:22 +00:00
William Oldham
9974e90f99 Version 4.5.1: Changelog 2024-02-29 23:26:32 +00:00
William Oldham
74ef15d547 Merge pull request #36 from qtchaos/qtchaos.de
docs: mv-web.netlify.app -> watch.qtchaos.de
2024-02-29 21:16:33 +00:00
qtchaos
38048d445e docs: mv-web.netlify.app -> watch.qtchaos.de 2024-02-29 23:13:28 +02:00
William Oldham
d5ca2647d1 Merge pull request #35 from movie-web/community-backend
Add community backend
2024-02-29 18:37:27 +00:00
William Oldham
075243969c Update 0.instances.md 2024-02-29 18:33:31 +00:00
William Oldham
350e7d8c1a Add community backend 2024-02-29 11:51:35 +00:00
William Oldham
a6491e3be8 Merge pull request #33 from MovieWebIPFS/patch-1
docs: add instance for movie-web.x / IPFS / IPNS
2024-02-28 16:13:29 +00:00
MovieWebIPFS
897165cdde fix: use HTTPS for ipfs.tech link 2024-02-28 16:08:40 +00:00
MovieWebIPFS
7e83619f91 fix: add https to ipns and dweb link 2024-02-28 16:06:08 +00:00
Christopher Dixon
0cedc72bb3 Update client docs - 3rd option docker compose 2024-02-27 22:17:34 -05:00
MovieWebIPFS
19c9f15a50 docs: add instance for movie-web.x / IPFS / IPNS
IPFS is a decentralized way to store, distribute and access static content. Perfect for the frontend.

Unstoppable Domains are domains stored on the polygon blockchain which are exclusively controlled by the person holding the private key for the domain.

Both systems are censorship resistant.

Gateway usage should be generally discouraged over native use as gateways may block access to certain content / names.
2024-02-27 15:51:30 +00:00
William Oldham
0018c82185 Unmark Chewie's domain as unavailable 2024-02-27 10:21:22 +00:00
William Oldham
63a45bbfed Make Chewie's domain as temp unavailable 2024-02-27 09:07:46 +00:00
William Oldham
d9b8de8a42 Merge pull request #31 from lonelil/master
add backend emoji for mw.lonelil.com
2024-02-27 08:01:51 +00:00
lonelil
5a6835c891 add backend emoji for mw.lonelil.com 2024-02-27 12:16:45 +08:00
William Oldham
50aab55bed Version 4.5 2024-02-26 21:46:30 +00:00
William Oldham
1d14e96e95 Merge pull request #29 from qtchaos/instances
Add new instances page and removes mentions of demo site
2024-02-26 21:12:15 +00:00
William Oldham
5e6916c61d Merge branch 'master' into instances 2024-02-26 21:11:53 +00:00
William Oldham
573ee58fa6 Merge pull request #30 from qtchaos/google-analytics
Add `VITE_GA_ID` and update proxy docs to mention new behaviour.
2024-02-26 19:31:38 +00:00
qtchaos
b195bc29e4 docs: add new instance 2024-02-26 21:30:00 +02:00
qtchaos
534eee7289 docs: add VITE_GA_ID, update proxy docs to be not required. 2024-02-26 21:11:37 +02:00
qtchaos
1cbf557171 docs: update explanation 2024-02-26 20:32:20 +02:00
qtchaos
81fe8205a8 docs: add instance, change discord link and add backend key (💾) 2024-02-26 20:14:53 +02:00
qtchaos
011570a054 docs: change location of instances.md and add an instance 2024-02-26 03:49:23 +02:00
qtchaos
56ad2f8a8b docs: include GitHub username instead of Discord 2024-02-24 02:20:59 +02:00
qtchaos
377c6bdcaf feat: add new instances page 2024-02-24 01:42:02 +02:00
William Oldham
723f869de2 Set base URL 2024-02-23 08:34:40 +00:00
William Oldham
2faee2931e Disable Nuxt GH Actions defaults 2024-02-23 08:29:09 +00:00
William Oldham
bfe02b9e5c Fix PNPM 2024-02-23 08:26:07 +00:00
William Oldham
c90892149a Enable corepack in GH Action 2024-02-23 08:23:54 +00:00
William Oldham
1ef42156d5 Create github_pages.yml 2024-02-23 08:22:33 +00:00
mrjvs
0906d85a13 Merge pull request #28 from movie-web/bump-version-4.4
Update client changelog
2024-02-10 21:25:39 +01:00
William Oldham
8308a4cf4d Add HLS PR to Changelog 2024-02-10 19:06:38 +00:00
William Oldham
ef34a734ee Update client changelog 2024-02-10 18:34:55 +00:00
William Oldham
4e8e4f20b7 Merge pull request #26 from movie-web/v4.3.3
Add warnings for cloudflare and changelog for client 4.3.3
2024-01-26 19:08:30 +00:00
mrjvs
78ae29dcfc Fix missing language 2024-01-26 19:23:15 +01:00
mrjvs
9bb7be831e Add warnings for cloudflare and changelog for client 4.3.3 2024-01-26 19:17:51 +01:00
William Oldham
6d778fd124 Merge pull request #25 from movie-web/backend-1.3.1
Add changelog for backend
2024-01-25 21:52:10 +00:00
mrjvs
f1ecf954cf Add changelog for backend 2024-01-25 22:49:33 +01:00
William Oldham
de9567bbfa Merge pull request #24 from movie-web/v4.3.2
Added new version v4.3.2 to docs
2024-01-24 19:48:13 +00:00
mrjvs
0c023f6075 add translations 2024-01-24 20:41:49 +01:00
mrjvs
7f1797daa7 l 2024-01-24 18:11:15 +01:00
mrjvs
0cfab658c0 Added new version to docs 2024-01-24 18:02:10 +01:00
William Oldham
04c23b4d2d Merge pull request #23 from movie-web/v4.3.1
changelog update for 4.3.1
2024-01-23 21:51:40 +00:00
mrjvs
32746c0c63 changelog update 2024-01-23 22:03:23 +01:00
William Oldham
b3b87113d1 Merge pull request #22 from movie-web/v4.2.6
V4.3.0 changes
2024-01-23 20:41:46 +00:00
mrjvs
07191858ba translations in changelog 2024-01-23 20:30:49 +01:00
mrjvs
f5afacf0b5 Added 4.3.0 changelog + new settings 2024-01-23 20:30:24 +01:00
71 changed files with 3887 additions and 10403 deletions

View File

@@ -1,7 +1,6 @@
dist
node_modules
.output
.nuxt
public
# Ignore index due to prettier removing setext headers
*.index.md

View File

@@ -1,8 +1,6 @@
module.exports = {
root: true,
extends: ['@nuxt/eslint-config', 'plugin:prettier/recommended'],
extends: ['next', 'plugin:prettier/recommended'],
rules: {
'vue/max-attributes-per-line': 'off',
'vue/multi-word-component-names': 'off',
'@next/next/no-img-element': 'off',
},
};

49
.github/workflows/github_pages.yml vendored Normal file
View File

@@ -0,0 +1,49 @@
name: "docs-deploy"
on:
push:
branches:
- master
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Upload
uses: actions/upload-pages-artifact@v3
with:
path: ./out
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

32
.github/workflows/linting.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: Linting and Testing
on:
push:
branches:
- master
pull_request:
jobs:
linting:
name: Run Linters
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 8
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'pnpm'
- name: Install pnpm packages
run: pnpm install
- name: Run ESLint
run: pnpm run lint

4
.gitignore vendored
View File

@@ -2,11 +2,11 @@ node_modules
*.iml
.idea
*.log*
.nuxt
.vscode
.DS_Store
coverage
dist
sw.*
.env
.output
out
.next

1
.npmrc
View File

@@ -1 +0,0 @@
shamefully-hoist=true

View File

@@ -1,4 +1,4 @@
# movie-web docs
Find it at https://docs.movie-web.app/
Find it at https://movie-web.github.io/docs

View File

@@ -1,40 +0,0 @@
export default defineAppConfig({
docus: {
title: 'movie-web',
description:
'movie-web is a free and open source streaming site, no ads, no tracking, no nonsense.',
url: 'https://docs.movie-web.app',
image: '/cover.png',
socials: {
github: 'movie-web/movie-web',
},
github: {
repo: 'docs',
owner: 'movie-web',
branch: 'master',
dir: 'content',
},
aside: {
level: 0,
exclude: [],
},
header: {
logo: true,
},
footer: {
credits: {
icon: '',
text: 'Made with 💜',
href: 'https://github.com/movie-web',
},
textLinks: [
{
text: 'movie-web',
href: 'https://movie-web.app',
target: '_blank',
rel: 'noopener',
},
],
},
},
});

View File

@@ -0,0 +1,18 @@
.logo {
border-radius: 5px;
margin-left: -0.5rem;
padding: 0.5rem;
transition: transform 100ms ease-in-out, background-color 100ms ease-in-out;
}
.logo > img {
height: 1.5rem;
}
.logo:hover {
background-color: rgba(var(--colors-bgLightest));
}
.logo:active {
transform: scale(1.05);
}

11
components/Logo.tsx Normal file
View File

@@ -0,0 +1,11 @@
import Link from 'next/link';
import classes from './Logo.module.css';
import logoUrl from '../public/icon-light.png';
export function Logo() {
return (
<Link href="/" className={classes.logo}>
<img src={logoUrl.src} alt="Logo of movie-web" />
</Link>
);
}

View File

@@ -1,16 +0,0 @@
<template>
<img src="/icon-light.png" alt="Logo of movie-web" class="img-dark" />
<img src="/icon-dark.png" alt="Logo of movie-web" class="img-light" />
</template>
<style scoped>
img {
height: 30px;
}
.light .img-dark {
display: none;
}
.dark .img-light {
display: none;
}
</style>

View File

@@ -1,95 +0,0 @@
---
title: 'movie-web - For all your movie and TV show needs'
navigation: false
head.titleTemplate: ''
layout: page
---
::block-hero
---
cta:
- Get Started
- /self-hosting/hosting-intro
secondary:
- Open on GitHub →
- https://github.com/movie-web/movie-web
---
#title
movie-web
#description
A simple and no-BS app for watching movies and TV shows. :br
Totally free and open source, forever.
::
::card-grid
#title
What's all the fuss?
#root
:ellipsis
#default
::card{icon="mdi:server-network"}
#title
Easy to host
#description
Can be easily hosted on any static website host.
::
::card{icon="material-symbols:hangout-video-off"}
#title
No Ads
#description
movie-web will never show ads, enjoy watching without interruptions.
::
::card{icon="ic:baseline-ondemand-video"}
#title
Custom Player
#description
Enjoy a fully custom video player including streaming integration, subtitle customization and easy TV season navigation.
::
::card{icon="mdi:content-save"}
#title
Saves your progress
#description
Will remember your progress in movies and TV shows, so you can easily continue where you left off.
::
::card{icon="mdi:bookmark"}
#title
Bookmarking
#description
Allows you to bookmark your favorite movies and TV shows, so you can easily find them again.
::
::card{icon="mdi:cloud-refresh"}
#title
Syncing across devices
#description
Enjoy uninterrupted streaming as your progress, proxies, and bookmarks sync effortlessly across all your devices.
::
::card{icon="mdi:power-plug-outline"}
#title
Modular by design
#description
Mix and match different parts of the movie-web service, [host your backend](4.backend/1.deploy.md) or use ours, it'll work either way.
::
::card{icon="mdi:flag"}
#title
Multiple Languages
#description
Supports over 25 languages, including English, German, French, Spanish, Italian, Czech, Hindi, Arabic, Hebrew and more. View the full list on [weblate](https://weblate.movie-web.app){target="\_blank"}.
::
::card{icon="mdi:brush-variant"}
#title
Customizable
#description
Supports various themes, subtitle colors and subtitle sizes so you can make it look however you want.
::
::card{icon="mdi:cellphone"}
#title
Progressive Web App Support
#description
Supports PWA, so you can install it on your phone and use it just like a native app.
::
::

View File

@@ -1,4 +0,0 @@
title: 'Self-Hosting'
icon: mdi:server-network
navigation.redirect: /self-hosting/hosting-intro
titleTemplate: '%s | Self-Hosting'

View File

@@ -1,4 +0,0 @@
title: 'Proxy'
icon: mdi:connection
navigation.redirect: /proxy/introduction
titleTemplate: '%s | Proxy'

View File

@@ -1,45 +0,0 @@
---
title: 'Deploy'
---
# Deploying the client
## Method 1 - Vercel - Recommended
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmovie-web%2Fmovie-web%2Ftree%2Fmaster&env=VITE_CORS_PROXY_URL,VITE_TMDB_READ_API_KEY)
1. Click the Deploy button.
1. Sign in using either a GitHub, GitLab, or Bitbucket.
1. Follow the instructions to create a repository for movie-web.
1. Configure the environment variables:
- `VITE_CORS_PROXY_URL`: Enter your proxy URL here. Make sure to not have a slash at the end of your URL.
Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `https://test-proxy.test.workers.dev`
- `VITE_TMDB_READ_API_KEY`: Enter your TMDB Read Access Token here. Please read [the TMDB page](2.tmdb.md) on how to get an API key.
- `VITE_BACKEND_URL`: Only set if you have a self-hosted backend. Put in your backend URL. Check out [configuration reference](../4.client/2.configuration.md) for details. Make sure to not have a slash at the end of the URL.
1. Click "Deploy"
1. Congrats! You have your own version of movie-web hosted.
1. You may wish to configure a custom domain - Please consult [the Vercel docs for how to do this](https://vercel.com/docs/getting-started-with-vercel/domains).
## Method 2 - Static Web Host
1. Download the file `movie-web.zip` from the latest release: https://github.com/movie-web/movie-web/releases/latest.
2. Extract the ZIP file so you can edit the files.
3. Open `config.js` in an editor such as Notepad, Visual Studio Code or similar.
4. Put your proxy URL in-between the double quotes of `VITE_CORS_PROXY_URL: ""`. Make sure to not have a slash at the end of your URL.
Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `VITE_CORS_PROXY_URL: "https://test-proxy.test.workers.dev"`
5. Put your TMDB Read Access Token inside the quotes of `VITE_TMDB_READ_API_KEY: ""`. Please read [the TMDB page](2.tmdb.md) on how to get an API key.
6. If you have a self-hosted backend server, enter your URL in the `VITE_BACKEND_URL` variable. Check out [configuration reference](../4.client/2.configuration.md) for details. Make sure to not have a slash at the end of the URL.
7. Save the file.
8. Upload **all** of the files to a static website hosting such as:
- GitHub Pages
- Netlify
- Vercel
- Etc, [there are lots of options](https://www.staticwebsitehosting.org/){target="\_blank"}.
9. Congrats! You have your own version of movie-web hosted.

View File

@@ -1,153 +0,0 @@
---
title: 'Changelog'
---
# Version 4.2.5
::alert{type="warning"}
This release requires a new version of simple-proxy: 2.1.3
::
- Update provider package, with fixes for febbox-mp4
# Version 4.2.4
::alert{type="warning"}
This release requires a new version of simple-proxy: 2.1.1
::
- Add meta tag for PWA's for apple devices
- Add galician flag
- Fix language fallback, this fixes weird dot notation instead of english language fallback
- Add Docker image for frontend
- Fix Brazilian portuguese flag in language selector
- Add profile picture preview in register and update
- Update Provider package to 2.0.4
- Added new translations: Catalan
- Improved translations: Czech, Greek, French, Gujarati, Hebrew, Hindi, Italian, Khmer (Central), Nepali, Dutch, Punjabi, Polish, Portuguese (Brazil), Romanian, Russian, Ukrainian, Vietnamese, Chinese (Simplified), pirate (generated), minion (generated)
# Version 4.2.3
- Fix player UI not disappearing
- Implement new locale system to support regional and alternative languages
- Add Turnstile interactive challenge and Turnstile loading screen
- Added new translations: Galician, Punjabi, Romanian
- Improved translations: Arabic, Czech, German, Spanish, Estonian, Gujarati, Hindi, Russian, Chinese (Simplified)
# Version 4.2.2
- Add worker URL syncing for accounts
- Fix broken hero title during the day
- Move search items with no poster to the end of the search results
- disable episodes if they have not been aired yet
- update provider package: disable febbox HLS, irrepairable
- Added new translations: Bulgarian, Bengali, Greek, Persian, Gujarati, Indonesian, Japanese, Korean, Slovenian, Tamil, Chinese (Traditional)
- Improved translations: Arabic, Czech, German, Spanish, Estonian, French, Hebrew, Hindi, Italian, Nepali, Dutch, Polish, Portuguese (Brazil), Russian, Thai, Toki Pona, Turkish, Ukrainian, Chinese (Simplified), pirate (generated), minion (generated)
# Version 4.2.1
- Fix the scrape screen showing success when it shouldn't
- Fix some more [Object object] showing in the error dialogue
- Updated translations: Czech, German, French, Polish, Italian, Thai, Hebrew, Nepali, Estonian, Toki Pona, Portuguese, Pirate
- Fix Ukrainian, Hindi and Toki Pona flags
# Version 4.2.0
- Add splashscreens for PWA
- Renamed captions to subtitles in translations
- Add youtube-esque shortcuts for navigating video
- Fix error dialogue not showing actual error message but instead shows [Object object]
- Gray subtitle color
- Hide settings button on mobile when it shouldnt have shown
- Fix Estonia and Nepal flag
- Update provider package to 2.0.1
- Superstream now split into showbox and febbox.
- Fixed sidebar not highlighting last item on high screens
- New translations: Hindi, Polish, Portuguese - Brazillian, Ukrainian
- Updates to translations: Czech, Estonian, German, Hebrew, Cambodian, Nepali, Swedish, Thai, Chinese, Minion
# Version 4.1.3
- Add support for downloading HLS playlists
- Added cdn replacements configuration option
- new translations: estonian, toki pona, spanish
- Translation improvements: german, turkish, nepali, chinese
# Version 4.1.2
- Improve bundle chunking
- Add millionjs for faster react
- Update all dependency versions
- Translation improvements: czech, hebrew, german
- Fix mobile controls not going away after some time
- Improve poster quality
- Fix "media not found" error not being shown
- Add more information to the error details modal
# Version 4.1.1
- Fixed bug where settings toggles sometimes weren't usuable
- Fixed bug where captions were permanently enabled
- Fixed some missing translations
- Translation improvements: arabic, french, nepali, chinese
# Version 4.1.0
- Added new translations: arabic, chinese, latvian, thai, nepali, dutch
- Translation improvements: turkish, hebrew
- Fixed text directions for captions
- Anti-tamper script has been removed and replaced with turnstile (this is the devtools blocked, you can use devtools again)
- Added way to add the providers-API instead of proxies
# Version 4.0.2
- Added new translations: Hebrew, French, German, Swedish, Turkish.
- Added minion joke language. Blame @jip\_.
- Thumbnail preview no longer goes under the next episode button.
- Passphrase inputs are now actual password fields, so they may act nicer with password managers.
- The player now remembers what your subtitle settings were, so no longer you need to keep selecting english everytime you watch.
- Fix home link not working with /s/:term shortcut.
- Swedish flag is now an actual Swedish flag.
- Fix for various layout issues with small width mobile screens.
# Version 4.0.0
::alert{type="info"}
If you are upgrading from a previous version, make sure to read [the upgrade guide](5.upgrade.md).
::
### Bug fixes
- Fixed bug where video player overlays the controls on IOS.
- Fixed bug where you are kicked out of the fullscreen when switching episode.
- Fixed bug where you cannot select a different episode if first episode fails to load.
### Enhancements
- Completely redesigned look and feel for the entire website.
- Added FAQ and DMCA pages.
- Source loading page is more detailed.
- Video player has been remade from scratch, all internal workings are brand new.
- You can now input numbers manually into the subtitle customization menu.
- Subtitle delay can now be increased outside of the slider range by inputting manual numbers.
- Movie and show URL's now include the name of the media in the link, makes it easier at a glance to see what a link is about.
- Instructions on how to download are now given inside the app.
- Chromecasting no longer shows captions on the web player (still doesnt show on cast receiver)
- Chromecasting now supports HLS
### New features
- Quality selector! You can now switch qualities.
- Search bar no longer requires you to choose between shows or movies.
- Visit `/s/:term` to quickly watch something. For example `https://movie-web.app/s/hamilton`.
- You can now add movie-web as a search provider in your browser.
- Safari now has subtitles when fullscreening.
- A next episode button will appear when close to the end of an episode, allowing quick switching to next episode.
- When seeking and hovering over progress bar, you will now see a thumbnail for the place you're hovering.
- Subtitles now have language flag next to them.
- Your subtitle preference gets saved.
- Turn on subtitles using keyboard shortcut `C`.
- Self-hosters can now test their configurations at the `/admin` page.
- Subtitles can now be downloaded.
- Sync your data through online accounts (using passphrases for maximum privacy)
- You can now choose your own worker URL set in the settings page.
- A custom backend server URL can be set on the settings page.
- On the settings page, you can now choose between multiple themes.

View File

@@ -1,13 +0,0 @@
---
title: 'Upgrade guide'
---
# Upgrade guide
## From `3.X` to `4.X`
You will need the latest version of the proxy worker. Redeploy a new worker using [our self-hosting guide](../2.proxy/1.deploy.md).
After you have the new worker, you will need to [get the new movie-web deployment files](https://github.com/movie-web/movie-web/releases/latest). **You CANNOT use the non-PWA version**. To upgrade safely without any complications, you need to update with `movie-web.pwa.zip`, Not the non-PWA version.
In the future, you will **ALWAYS** need to go with the PWA option. You cannot downgrade to non-PWA version without facing many caching complications.

View File

@@ -1,4 +0,0 @@
title: 'Client'
icon: mdi:monitor
navigation.redirect: /client/introduction
titleTemplate: '%s | Client'

View File

@@ -1,25 +0,0 @@
---
title: 'Introduction'
---
# Introduction to the backend
The backend is essentially just an account server. It handles user accounts, syncing, and other account related features.
## Metrics
The backend exposes an endpoint for [Prometheus metrics](https://prometheus.io/){target="\_blank"} which allows you to keep track of the backend more easily, it can be accessed on `/metrics`.
To view these metrics properly, you'll need to use an analytics program like [Grafana](https://grafana.com/){target="\_blank"}, [which can visualize logs from Prometheus](https://prometheus.io/docs/visualization/grafana/){target="\_blank"}.
## Security
Optionally, there are a few security settings:
- [Recaptcha support](2.configuration.md#captcha), the server can verify Recaptcha v3 tokens on register and login.
- [Ratelimits](2.configuration.md#ratelimits), some expensive endpoints have ratelimits, but only when enabled. This requires an additional redis connection.
## Migrations
Migrations help keep your database schema in sync with everyone else. To run migrations, you can use the `pnpm migration:up` command inside the docker container or in your command-line if you're not using docker.
Alternatively, you can enable the [`postgres.migrateOnBoot`](2.configuration.md#postgresmigrateonboot) variable and it will be automatically migrated on boot.

View File

@@ -1,50 +0,0 @@
---
title: 'Deploy'
---
# Deploying the backend
The only officially recognized hosting method is through Docker (or similar container runtimes). It can be scaled horizontally to all your heart's content and is the safest way to host the backend.
For configuration, check out the [configuration reference](2.configuration.md).
::alert{type="info"}
The postgres database will need to be populated with [migrations](0.introduction.md#migrations) if `postgres.migrateOnBoot` isn't enabled.
::
## Method 1 - Docker
This method will help you set up the backend with the bare minimum configuration options. You'll most likely want to [add some more environment variables](2.configuration.md) to customize your experience more thoroughly.
The command below will not work unless customized by you, change the [`MWB_POSTGRES__CONNECTION`](2.configuration.md#postgresconnection) and [`MWB_CRYPTO__SESSION_SECRET`](2.configuration.md#cryptosessionsecret) to something valid for the backend to function.
If you're using a hosted postgres database like [Neon](https://neon.tech/){target="\_blank"}, you'll also want to enable SSL support for the backend using the [`postgres.ssl`](2.configuration.md#postgresssl) option.
For other versions of the image, [check out the package page](https://github.com/movie-web/backend/pkgs/container/backend){target="\_blank"}.
```sh
docker run \
-p 80:80 \
-e MWB_POSTGRES__CONNECTION=postgresql://localhost:5432 \
-e MWB_CRYPTO__SESSION_SECRET=add-your-own-secret \
-e MWB_META__NAME=unofficial-movie-web \
ghcr.io/movie-web/backend:latest
```
After running that command, your backend [_should_](../1.self-hosting/4.troubleshooting.md) now be available on `localhost:80`. if you want to be able to connect to the backend outside of your local network (for example sharing it with your friends), then you'll need set up to port forwarding.
## Method 2 - Railway (Easy)
Railway offers you $5 of credit once you verify your account, which is enough to run the backend for around 5 months (~$0.90 per month).
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/TS4mw5)
1. Login to your [Railway](https://railway.app) account if you have one, otherwise create one [here](https://railway.app/login).
1. If you are signing up, then verify your account by clicking the link in the email Railway sends you.
1. If you created your account with an email, then to verify your account further, go to your account, then plans and verify your account with a GitHub account.
1. Click the [`Deploy on Railway`](https://railway.app/template/TS4mw5) button above.
1. If a `Configure` button is displayed, click on it and allow Railway to access your GitHub account.
1. Fill in the required variables or change the default values.
1. The `Deploy` button at the bottom of the template should be active, click on it.
1. Once the `Backend` service has deployed, copy the URL from the `Deployments` page. (Might take a second for it to be available after the service has deployed)
1. Congratulations! You have deployed the backend, you can now [set up the client](../1.self-hosting/2.use-backend.md).

View File

@@ -1,4 +0,0 @@
title: 'Backend'
icon: mdi:database
navigation.redirect: /backend/introduction
titleTemplate: '%s | Backend'

View File

@@ -1,4 +0,0 @@
title: 'Extra'
icon: mdi:information-variant-circle-outline
navigation.redirect: /extra/streaming
titleTemplate: '%s | Extra'

View File

@@ -1,7 +0,0 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_size = 2
indent_style = space

1
new/.gitattributes vendored
View File

@@ -1 +0,0 @@
* text=auto eol=lf

3
new/.gitignore vendored
View File

@@ -1,3 +0,0 @@
node_modules
.DS_Store
.next

View File

@@ -1,21 +0,0 @@
MIT License
Copyright (c) 2023 movie-web
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,4 +0,0 @@
# movie-web docs
Find it at https://docs.movie-web.app/

View File

@@ -1,8 +0,0 @@
import nextra from "nextra";
const withNextra = nextra({
theme: 'nextra-theme-docs',
themeConfig: './theme.config.tsx'
})
export default withNextra({});

View File

@@ -1,15 +0,0 @@
{
"type": "module",
"scripts": {
"dev": "next",
"build": "next build",
"start": "next start"
},
"dependencies": {
"next": "^14.0.4",
"nextra": "^2.13.2",
"nextra-theme-docs": "^2.13.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
}

View File

@@ -1,3 +0,0 @@
# Hello world !
This is a test

2844
new/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
import type { ThemeConfig } from "nextra"
const config: ThemeConfig = {
logo: <span>My Nextra Documentation</span>,
project: {
link: 'https://github.com/shuding/nextra'
}
}
export default config;

5
next-env.d.ts vendored Normal file
View File

@@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

10
next.config.mjs Normal file
View File

@@ -0,0 +1,10 @@
import { guider } from '@neato/guider';
const withGuider = guider({
themeConfig: './theme.config.tsx',
});
export default withGuider({
output: 'export',
basePath: '/docs',
});

View File

@@ -1,11 +0,0 @@
export default defineNuxtConfig({
// https://github.com/nuxt-themes/docus
extends: '@nuxt-themes/docus',
devtools: { enabled: true },
modules: [
// Remove it if you don't use Plausible analytics
// https://github.com/nuxt-modules/plausible
'@nuxtjs/plausible',
],
});

View File

@@ -1,25 +1,28 @@
{
"name": "docus-starter",
"version": "0.1.0",
"name": "movie-web-docs",
"version": "0.2.0",
"private": true,
"scripts": {
"dev": "nuxi dev",
"build": "nuxi build",
"generate": "nuxi generate",
"preview": "nuxi preview",
"lint": "eslint .",
"lint:fix": "eslint --fix ."
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"lint:fix": "next lint --fix"
},
"devDependencies": {
"@nuxt-themes/docus": "latest",
"@nuxt/devtools": "^1.0.6",
"@nuxt/eslint-config": "^0.2.0",
"@nuxtjs/plausible": "^0.2.4",
"@types/node": "^20.10.6",
"@types/react": "18.2.73",
"eslint": "^8.56.0",
"eslint-config-next": "^14.1.4",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.2",
"nuxt": "^3.9.0",
"prettier": "^3.1.1"
"prettier": "^3.1.1",
"typescript": "5.4.3"
},
"dependencies": {
"@neato/guider": "^0.1.5",
"next": "^14.1.4",
"next-seo": "^6.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
}

3
pages/404.tsx Normal file
View File

@@ -0,0 +1,3 @@
import { createNotFoundPage } from '@neato/guider/client';
export default createNotFoundPage();

4
pages/_app.tsx Normal file
View File

@@ -0,0 +1,4 @@
import '@neato/guider/style.css';
import { createGuiderApp } from '@neato/guider/client';
export default createGuiderApp();

View File

@@ -2,6 +2,12 @@
title: 'Changelog'
---
# Version 1.3.1
- Fixed bug where "false" env variables weren't treated as false for booleans
- Added ARM support for hosted docker container
- Stopped using JSON for recaptcha verifications.
# Version 1.3.0
For this update, you will need to run migrations.
@@ -12,11 +18,11 @@ For this update, you will need to run migrations.
# Version 1.2.0
::alert{type="warning"}
<Warning>
For this update, you will need to run migrations.
::
</Warning>
- [Added option to trust Cloudflare IP headers for ratelimits](2.configuration.md#servertrustcloudflare)
- [Added option to trust Cloudflare IP headers for ratelimits](./configuration.mdx#server-trust-cloudflare)
- Removed unused table
- Optimized prometheus metrics, should make less indexes
@@ -26,5 +32,5 @@ For this update, you will need to run migrations.
- Account creation/deletion endpoints
- Endpoints for importing old account data
- Endpoints for syncing data
- [Ratelimit system](2.configuration.md#ratelimit)
- [Captcha system](2.configuration.md#captcha)
- [Ratelimit system](./configuration.mdx#ratelimits)
- [Captcha system](./configuration.mdx#captcha)

View File

@@ -12,10 +12,10 @@ The backend can be configured in 3 different ways:
These different config options are all mutually inclusive, so you can use multiple at the same time if you want to.
::alert{type="warning"}
<Warning>
With any of these configurations, you have to have atleast three variables set for the server to function:
[`postgres.connection`](#postgresconnection), [`crypto.sessionSecret`](#cryptosessionsecret) and [`meta.name`](#metaname)
::
[`postgres.connection`](#postgres-connection-⚠), [`crypto.sessionSecret`](#crypto-session-secret-⚠) and [`meta.name`](#meta-name-⚠)
</Warning>
### Method 1 - `config.json`
@@ -60,14 +60,14 @@ Port number that the HTTP server listens on.
- Default: `""`
- Example: `"https://movie-web.app https://testing.movie-web.app"`
Space seperated list of allowed origins.
Space separated list of allowed origins.
### `server.allowAnySite`
- Type: `boolean`
- Default: `false`
If set to true, it allows any origin to access the site. This overwrites the [`server.cors`](#servercors) setting.
If set to true, it allows any origin to access the site. This overwrites the [`server.cors`](#server-cors) setting.
### `server.trustProxy`
@@ -90,13 +90,13 @@ Controls whether the server should trust Cloudflare IP headers. This is used to
Prefix for which path is being listened on. Useful if you're hosting on `example.com/backend` for example.
::alert{type="info"}
<Note>
If this is set, you shouldn't apply URL rewriting before proxying.
::
</Note>
## Logging
All configurations related to how the HTTP server will log. This is not related to the [metrics](0.introduction.md#metrics) endpoint.
All configurations related to how the HTTP server will log. This is not related to the [metrics](./introduction.mdx#metrics) endpoint.
### `logging.format`
@@ -116,20 +116,20 @@ All configurations related to how postgres functions.
Connection URL for postgres instance, should contain the database in the URL.
::alert{type="danger"}
<Caution>
**Required. The backend will not start if this is not configured.**
::
</Caution>
### `postgres.migrateOnBoot`
- Type: `boolean`
- Default: `false`
Run all [migrations](0.introduction.md#migrations) that haven't ran yet on boot.
Run all [migrations](./introduction.mdx#migrations) that haven't ran yet on boot.
::alert{type="warning"}
<Warning>
If you have multiple replicas running, this can cause a lot of issues. We recommend only using this if you run only one replica.
::
</Warning>
### `postgres.debugLogging`
@@ -138,9 +138,9 @@ If you have multiple replicas running, this can cause a lot of issues. We recomm
Log all postgres queries in the console. Useful for debugging issues with the database.
::alert{type="warning"}
<Warning>
This outputs sensitive, **DO NOT** run it in production.
::
</Warning>
### `postgres.ssl`
@@ -159,9 +159,9 @@ All configurations related to cryptography.
The secret used to sign sessions. **Must be at least 32 characters long.**
::alert{type="danger"}
<Caution>
**Required. The backend will not start if this is not configured.**
::
</Caution>
## Meta
@@ -174,9 +174,9 @@ These options configure how the server will display itself to the frontend.
The name of the backend instance, this will be displayed to users who try to create an account.
::alert{type="danger"}
<Caution>
**Required. The backend will not start if this is not configured.**
::
</Caution>
### `meta.description`
@@ -195,11 +195,11 @@ All configurations related to adding captcha functionality. Captchas' help to pr
- Type: `boolean`
- Default: `false`
Enables [Recaptcha](https://www.google.com/recaptcha/about/) support for user registration and login. [You can follow this guide to create a Recaptcha key](https://cloud.google.com/recaptcha-enterprise/docs/create-key-website#create-key){target="\_blank"}.
Enables [Recaptcha](https://www.google.com/recaptcha/about/) support for user registration and login. [You can follow this guide to create a Recaptcha key](https://cloud.google.com/recaptcha-enterprise/docs/create-key-website#create-key).
::alert{type="warning"}
<Warning>
If this is enabled, all other captcha related settings are required.
::
</Warning>
### `captcha.secret`
@@ -221,9 +221,9 @@ If this is enabled, all other captcha related settings are required.
All configuration options related to adding ratelimiting functionality. Helps to protect against bot attacks or spammy users.
::alert{type="info"}
Make sure your IP headers are properly forwarded if you're using a reverse proxy. Also see [`server.trustProxy`](#servertrustproxy).
::
<Note>
Make sure your IP headers are properly forwarded if you're using a reverse proxy. Also see [`server.trustProxy`](#server-trust-proxy).
</Note>
### `ratelimits.enabled`
@@ -232,9 +232,9 @@ Make sure your IP headers are properly forwarded if you're using a reverse proxy
Enables ratelimiting some more expensive endpoints.
::alert{type="warning"}
<Warning>
If this is enabled, all other ratelimit related settings are required.
::
</Warning>
### `ratelimits.redisUrl`

97
pages/backend/deploy.mdx Normal file
View File

@@ -0,0 +1,97 @@
---
title: 'Deploy'
---
# Deploying the backend
The only officially recognized hosting method is through Docker (or similar container runtimes). It can be scaled horizontally to all your heart's content and is the safest way to host the backend.
For configuration, check out the [configuration reference](./configuration.mdx).
<Note>
The postgres database will need to be populated with [migrations](./introduction.mdx#migrations) if `postgres.migrateOnBoot` isn't enabled.
</Note>
## Method 1 - Docker Deployment
This method provides a straightforward setup with minimal configuration. For more extensive customization, see the [Configuration Reference](./configuration.mdx).
**Prerequisites**
* **Docker:** If you don't have Docker installed, download it from the official website: [Docker installation](https://www.docker.com/get-started)
* **Docker Compose:** Install Docker Compose following the instructions for your operating system: [Docker-Compose installation](https://docs.docker.com/compose/install/)
**Setup**
1. **Create `docker-compose.yml`:**
```yaml
version: '3.8'
services:
postgres:
image: postgres
environment:
POSTGRES_USER: movie_web_user
POSTGRES_DB: movie_web_backend
POSTGRES_PASSWORD: YourPasswordHere
ports:
- "5432:5432"
networks:
- movie-web-network
movie-web:
image: ghcr.io/movie-web/backend:latest
environment:
MWB_POSTGRES__CONNECTION: postgresql://movie_web_user:YourPasswordHere@postgres:5432/movie_web_backend
MWB_CRYPTO__SESSION_SECRET: 32CharacterLongStringHere
MWB_META__NAME: unofficial-movie-web
MWB_POSTGRES__MIGRATE_ON_BOOT: "true"
MIKRO_ORM_MIGRATIONS_DISABLE_FOREIGN_KEYS: "true"
ports:
- "80:80"
depends_on:
- postgres
networks:
- movie-web-network
networks:
movie-web-network:
driver: bridge
```
**Important:**
* Replace `YourPasswordHere` with your secure database password.
* Generate a strong session secret and replace `32CharacterLongStringHere`.
2. **Start the Backend:** Open a terminal in the directory containing `docker-compose.yml` and execute:
```bash
docker-compose up -d
```
**Accessing Your Backend**
Your backend should be accessible on `(YourPrivateIP):80`. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel.
**Optional: Implementing a Reverse Proxy**
To enhance your SSL and domain configuration, it's advisable to establish a reverse proxy, such as Nginx. For an optimal choice in this regard, Cloudflare Zero Trust Tunnel is recommended. You can find more information [here](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel/).
- If you decide to utilize a reverse proxy, it's important to include `MWB_SERVER__CORS: "https://movie.example.com"` in your configuration.
- `MWB_SERVER__CORS` must contain a **space-separated** list of origins (Protocol + Hostname) for the client to be able to access the backend.
- Depending on your specific setup, you may also require the addition of `MWB_SERVER__TRUST_PROXY: true` and `MWB_SERVER__TRUST_CLOUDFLARE: true`.
## Method 2 - Railway (Easy)
Railway offers you $5 of credit once you verify your account, which is enough to run the backend for around 5 months (~$0.90 per month).
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/TS4mw5)
1. Login to your [Railway](https://railway.app) account if you have one, otherwise create one [here](https://railway.app/login).
1. If you are signing up, then verify your account by clicking the link in the email Railway sends you.
1. If you created your account with an email, then to verify your account further, go to your account, then plans and verify your account with a GitHub account.
1. Click the [`Deploy on Railway`](https://railway.app/template/TS4mw5) button above.
1. If a `Configure` button is displayed, click on it and allow Railway to access your GitHub account.
1. Fill in the required variables or change the default values.
1. The `Deploy` button at the bottom of the template should be active, click on it.
1. Once the `Backend` service has deployed, copy the URL from the `Deployments` page. (Might take a second for it to be available after the service has deployed)
1. Congratulations! You have deployed the backend, you can now [set up the client](../self-hosting/use-backend.mdx).

3
pages/backend/index.tsx Normal file
View File

@@ -0,0 +1,3 @@
import { createRedirect } from '@neato/guider/client';
export default createRedirect({ to: '/backend/introduction' });

View File

@@ -0,0 +1,30 @@
---
title: 'Introduction'
---
# Introduction to the backend
The backend is essentially just an account server. It handles user accounts, syncing, and other account related features.
## Recommended Community Backend
To keep consistency and compatibility between different instances our partner, [lonelil](https://github.com/lonelil), has kindly offered to host a movie-web backend with a copy of the original data from the now unavailable movie-web.app backend. You can access this backend at: `https://mw-backend.lonelil.com` and `https://mw-backend.lonelil.ru`
Meaning users **do not** have to set up a new account; you can use your previous passphrase from movie-web, and all of your data will be there!
## Metrics
The backend exposes an endpoint for [Prometheus metrics](https://prometheus.io/) which allows you to keep track of the backend more easily, it can be accessed on `/metrics`.
To view these metrics properly, you'll need to use an analytics program like [Grafana](https://grafana.com/), [which can visualize logs from Prometheus](https://prometheus.io/docs/visualization/grafana/).
## Security
Optionally, there are a few security settings:
- [Recaptcha support](./configuration.mdx#captcha), the server can verify Recaptcha v3 tokens on register and login.
- [Ratelimits](./configuration.mdx#ratelimits), some expensive endpoints have ratelimits, but only when enabled. This requires an additional redis connection.
## Migrations
Migrations help keep your database schema in sync with everyone else. To run migrations, you can use the `pnpm migration:up` command inside the docker container or in your command-line if you're not using docker.
Alternatively, you can enable the [`postgres.migrateOnBoot`](./configuration.mdx#postgres-migrate-on-boot) variable and it will be automatically migrated on boot.

288
pages/client/changelog.mdx Normal file
View File

@@ -0,0 +1,288 @@
---
title: 'Changelog'
---
# Version 4.7.0
- Updated providers to 2.3.0
- Keyboard shortcuts now also work with uppercase keys
- Audio language now defaults to your language preference
- The "Back to home" button in the video player can now be opened in a new tab using middle click
- The "Next episode" button now turns into a "Next season" button if you are on the last episode
- Added a fallback TMDB API if the first one cannot be reached. This should fix an issue for some users that are not able to search.
- Added autoplay. This can be turned on for extension users, users with a custom proxy, or can be turned on for all users for self-hosters using a environment variable.
- Improved translations: Persion (Mehdi), French (Erwann)
# Version 4.6.6
- Updated providers to 2.2.9
- Fixes for VidSrcTo and RidoMovies
- Improved translations: German, Persian, Hindi, Korean, Nepali (macrolanguage), Dutch, Chinese (Han (Simplified variant))
# Version 4.6.5
- Updated providers to 2.2.7
# Version 4.6.4
- Updated providers to 2.2.6
- Fixed Ridomovies not playing for extension users
- Added a default workflow for syncing forks
- Improved translations: Persian, Indonesian, Portuguese (Brazil), Russian
# Version 4.6.3
- Updated providers to 2.2.5
- Fixed vercel routing
- Fixed TV browsers crashing because of MediaSession
- Fixed Chinese (traditional) translation
- Optimized all images
- Fixed page scrolling when adjusting the volume using the scroll wheel
- Added support for HLS audio tracks (You now have the option to change the audio language for RidoMovies)
- Admin page no longer leaks the worker url.
- Added the ability to drag and drop your subtitle files.
- Improved the error message when the extension has not whitelisted the domain. It should now ask you to grant permission.
- Fixed an issue where the episode progression would not save after clicking the 'Next episode' button
- Improved translations: Catalan, Czech, German, Spanish, Estonian, Persian, French, Galician, Indonesian, Italian, Dutch, Polish, Portuguese (Brazil), Romanian, Russian, Turkish, Chinese (Han (Traditional variant))
# Version 4.6.2
- Updated providers to 2.2.3
- Added defaults for extension store links
- Onboarding now defaults to true for self-hosters.
- Support for embedded HLS subtitles (This fixes Ridomovies having default subtitles that could not be changed).
- Improved translations: Polish, Toki Pona
# Version 4.6.1
- Fixed subtitle blur settings loading as NaN
- Improved translations: Czech, German, Persian, French, Italian, Dutch, Russian, Slovenian, Ukrainian, Chinese (Han (Simplified variant))
# Version 4.6.0
- Implemented media session support!
- Added option to blur background in subtitles
- Added vercel config to properly support using non-hash routing
- Fixed a bug in config that treated empty environment variables as being set, causing config.js to be ignored
- Fixed a bug in the button component that meant our own pages opened in a new tab
- Added new translations: Catalan
- Improved translations: Catalan, Spanish, Persian, French, Hindi, Icelandic, Italian, Nepali (macrolanguage), Dutch, Panjabi, Slovenian, Chinese (Han (Simplified variant)), Russian, Estonian, Korean
# Version 4.5.1
- Improved translations: Catalan, Czech, Spanish, Persian, French, Italian, Portuguese (Brazil), Russian, Tamil, Vietnamese, Chinese (Han (Simplified variant))
- Update providers to 2.2.2
- Update Dockerfile to have build-time arguments and add a Docker compose file
- Allow banners to be dismissible
- Update extension logic to process all URLs in a HLS playlist
- Automatically prefix backend URL with https:// if not provided
# Version 4.5.0
- Improved translations: Estonian, Persian, Toki Pona, Vietnamese.
- Route subtitles through extension if installed.
- Fix Docker build failing when PWA is enabled.
- Add randomised placeholders for search bar.
- Add preview to the theme selector.
- Remove references to the official domain.
- Update admin page to run worker tests in parallel.
- Disable creating account when backend server isn't set.
- Remove default setup option if no default proxy set.
- Remove extension help text when extension succeeded.
- Allow configuration of Google Analytics - removed our default one.
- Fix media download button redirection to incorrect URL on main tab.
- Allow users to change volume with scroll wheel.
# Version 4.4.0
- Changed behaviour of HLS playlists to have a copy button instead of a download button for more compatibility.
- Improve the appearance of the "active" pill under theme settings - it now has better padding and matches the theme it represents.
- If a user selects a proxy during onboarding, it is now saved to the backend if the user is signed in.
- Fixed sorting of shows that caused the "continue watching" to not update properly when syncing with the backend.
- Added an "x" button to clear the search query.
- Improve mobile layout for setup component.
- Fix HLS issue with throwing 403 error.
- Improved translations: Arabic, German, Persian, Finnish, Galician, Italian, Japanese, Korean, Panjabi, Russian, Turkish, Ukrainian, Chinese (Han (Simplified variant)).
- Update providers package to 2.2.
# Version 4.3.3
- Fixed body not being transferred properly to the extension (needs latest version of extension)
- Added new translations: Finnish
- Improved translations: Czech, German, English, Spanish, Persian, French, Galician, Gujarati, Hebrew, Hindi, Icelandic, Navajo, Portuguese (Brazil), Russian, Ukrainian, Chinese (Han (Simplified variant))
# Version 4.3.2
- Run account server data fetching in parallel.
- Added specific text per browser for extension setup screen
- Fix bug where first load the page couldn't talk to extension
- Fix too short of a timeout when checking for proxy response
- Move start of bolding for HLS disclaimer
- Fix app crash when opening download screen on lower RAM browsers
- Make onboarding start screen more mobile friendly
- Separate extension install links into two settings (firefox & chrome)
- Added new translations: Icelandic
- Improved translations: German, Spanish, Persian, French, Hebrew, Italian, Nepali (macrolanguage), Dutch, Polish, Portuguese (Brazil), Romanian, Chinese (Han (Simplified variant))
# Version 4.3.1
- Fix provider API interaction with extension.
# Version 4.3.0
- Add onboarding process to movie-web, triggable manually through settings. This needs to be turned when selfhosting.
- Added settings to toggle generated thumbnails, disabled by default
- Fix multiple subtitles with same language all showing as selected
- Add docker support, a hosted container image included (with ARM support)
- Added extension support, run movie-web without setting up a custom proxy
- Add disabled cursor for disabled buttons
- Add instruction link to custom proxy and custom server settings
- Added backdrop blur to navigation buttons
- Updated provider package (Re-enabled showbox/febbox subtitles)
- Added new translations: Catalan
- Improved translations: Bengali, Czech, German, Spanish, Persian, French, Galician, Italian, Nepali, Dutch, Polish, Portuguese, Portuguese, Russian, Turkish, Ukrainian, Vietnamese, Chinese
# Version 4.2.5
<Warning>
This release requires a new version of simple-proxy: 2.1.3
</Warning>
- Update provider package, with fixes for febbox-mp4
# Version 4.2.4
<Warning>
This release requires a new version of simple-proxy: 2.1.1
</Warning>
- Add meta tag for PWA's for apple devices
- Add galician flag
- Fix language fallback, this fixes weird dot notation instead of english language fallback
- Add Docker image for frontend
- Fix Brazilian portuguese flag in language selector
- Add profile picture preview in register and update
- Update Provider package to 2.0.4
- Added new translations: Catalan
- Improved translations: Czech, Greek, French, Gujarati, Hebrew, Hindi, Italian, Khmer (Central), Nepali, Dutch, Punjabi, Polish, Portuguese (Brazil), Romanian, Russian, Ukrainian, Vietnamese, Chinese (Simplified), pirate (generated), minion (generated)
# Version 4.2.3
- Fix player UI not disappearing
- Implement new locale system to support regional and alternative languages
- Add Turnstile interactive challenge and Turnstile loading screen
- Added new translations: Galician, Punjabi, Romanian
- Improved translations: Arabic, Czech, German, Spanish, Estonian, Gujarati, Hindi, Russian, Chinese (Simplified)
# Version 4.2.2
- Add worker URL syncing for accounts
- Fix broken hero title during the day
- Move search items with no poster to the end of the search results
- disable episodes if they have not been aired yet
- update provider package: disable febbox HLS, irreparable
- Added new translations: Bulgarian, Bengali, Greek, Persian, Gujarati, Indonesian, Japanese, Korean, Slovenian, Tamil, Chinese (Traditional)
- Improved translations: Arabic, Czech, German, Spanish, Estonian, French, Hebrew, Hindi, Italian, Nepali, Dutch, Polish, Portuguese (Brazil), Russian, Thai, Toki Pona, Turkish, Ukrainian, Chinese (Simplified), pirate (generated), minion (generated)
# Version 4.2.1
- Fix the scrape screen showing success when it shouldn't
- Fix some more [Object object] showing in the error dialogue
- Updated translations: Czech, German, French, Polish, Italian, Thai, Hebrew, Nepali, Estonian, Toki Pona, Portuguese, Pirate
- Fix Ukrainian, Hindi and Toki Pona flags
# Version 4.2.0
- Add splashscreens for PWA
- Renamed captions to subtitles in translations
- Add youtube-esque shortcuts for navigating video
- Fix error dialogue not showing actual error message but instead shows [Object object]
- Gray subtitle color
- Hide settings button on mobile when it shouldnt have shown
- Fix Estonia and Nepal flag
- Update provider package to 2.0.1
- Superstream now split into showbox and febbox.
- Fixed sidebar not highlighting last item on high screens
- New translations: Hindi, Polish, Portuguese - Brazillian, Ukrainian
- Updates to translations: Czech, Estonian, German, Hebrew, Cambodian, Nepali, Swedish, Thai, Chinese, Minion
# Version 4.1.3
- Add support for downloading HLS playlists
- Added cdn replacements configuration option
- new translations: estonian, toki pona, spanish
- Translation improvements: german, turkish, nepali, chinese
# Version 4.1.2
- Improve bundle chunking
- Add millionjs for faster react
- Update all dependency versions
- Translation improvements: czech, hebrew, german
- Fix mobile controls not going away after some time
- Improve poster quality
- Fix "media not found" error not being shown
- Add more information to the error details modal
# Version 4.1.1
- Fixed bug where settings toggles sometimes weren't usable
- Fixed bug where captions were permanently enabled
- Fixed some missing translations
- Translation improvements: arabic, french, nepali, chinese
# Version 4.1.0
- Added new translations: arabic, chinese, latvian, thai, nepali, dutch
- Translation improvements: turkish, hebrew
- Fixed text directions for captions
- Anti-tamper script has been removed and replaced with turnstile (this is the devtools blocked, you can use devtools again)
- Added way to add the providers-API instead of proxies
# Version 4.0.2
- Added new translations: Hebrew, French, German, Swedish, Turkish.
- Added minion joke language. Blame @jip\_.
- Thumbnail preview no longer goes under the next episode button.
- Passphrase inputs are now actual password fields, so they may act nicer with password managers.
- The player now remembers what your subtitle settings were, so no longer you need to keep selecting english every time you watch.
- Fix home link not working with /s/:term shortcut.
- Swedish flag is now an actual Swedish flag.
- Fix for various layout issues with small width mobile screens.
# Version 4.0.0
<Note>
If you are upgrading from a previous version, make sure to read [the upgrade guide](./upgrade.mdx).
</Note>
### Bug fixes
- Fixed bug where video player overlays the controls on IOS.
- Fixed bug where you are kicked out of the fullscreen when switching episode.
- Fixed bug where you cannot select a different episode if first episode fails to load.
### Enhancements
- Completely redesigned look and feel for the entire website.
- Added FAQ and DMCA pages.
- Source loading page is more detailed.
- Video player has been remade from scratch, all internal workings are brand new.
- You can now input numbers manually into the subtitle customization menu.
- Subtitle delay can now be increased outside of the slider range by inputting manual numbers.
- Movie and show URL's now include the name of the media in the link, makes it easier at a glance to see what a link is about.
- Instructions on how to download are now given inside the app.
- Chromecasting no longer shows captions on the web player (still doesnt show on cast receiver)
- Chromecasting now supports HLS
### New features
- Quality selector! You can now switch qualities.
- Search bar no longer requires you to choose between shows or movies.
- Visit `/s/:term` to quickly watch something. For example `https://movie-web.app/s/hamilton`.
- You can now add movie-web as a search provider in your browser.
- Safari now has subtitles when fullscreening.
- A next episode button will appear when close to the end of an episode, allowing quick switching to next episode.
- When seeking and hovering over progress bar, you will now see a thumbnail for the place you're hovering.
- Subtitles now have language flag next to them.
- Your subtitle preference gets saved.
- Turn on subtitles using keyboard shortcut `C`.
- Self-hosters can now test their configurations at the `/admin` page.
- Subtitles can now be downloaded.
- Sync your data through online accounts (using passphrases for maximum privacy)
- You can now choose your own worker URL set in the settings page.
- A custom backend server URL can be set on the settings page.
- On the settings page, you can now choose between multiple themes.

View File

@@ -36,26 +36,28 @@ window.__CONFIG__ = {
- Type: `string`
- Default: `""`
This is the **read** API key from TMDB to allow movie-web to search for media. [Get one by following our guide](/client/tmdb).
This is the **read** API key from TMDB to allow movie-web to search for media. [Get one by following our guide](./tmdb.mdx).
::alert{type="danger"}
**Required. The client will not work properly if this is not configured.**
::
<Caution>
**Required. The client will not work properly if this is not configured.**
</Caution>
### `VITE_CORS_PROXY_URL`
### `VITE_CORS_PROXY_URL`
- Type: `string`
- Default: `""`
- Example: `"https://example1.example.com,https://example2.example.com"`
This is where you put proxy URLS, you must have at least one. [Get one by following our guide](/proxy/deploy).
This is where you put proxy URLs. [Get some by following our guides](../proxy/deploy.mdx).
If left empty, the client onboarding will not provide a "default setup" and the user will have to manually configure their own proxy or use the extension.
You can add multiple Workers by separating them with a comma, they will be load balanced using round robin method on the client.
**Worker URL entries must not end with a slash.**
::alert{type="danger"}
**Required. The client will not work properly if this is not configured.**
::
<Caution>
**Required. The client will not work properly if this is not configured.**
</Caution>
### `VITE_DMCA_EMAIL`
@@ -71,7 +73,7 @@ This is the DMCA email for on the DMCA page. If this config value is present, a
- Default: `false`
The application has two routing modes: hash-router and history-router.
Hash router means that every page is linked with a hash like so: <code style="overflow-wrap: anywhere">https://example.com/#/browse</code>.
Hash router means that every page is linked with a hash like so: `https://example.com/#/browse`.
History router does routing without a hash like so: `https://example.com/browse`, this looks a lot nicer, but it requires that your hosting environment supports Single-Page-Application (SPA) redirects (Vercel supports this feature). If you don't know what that means, don't enable this.
@@ -80,15 +82,59 @@ Setting this configuration value to `true` will enable the history-router.
### `VITE_BACKEND_URL`
- Type: `string`
- Default: `"https://backend.movie-web.app"`
- Default: `""`
- Example: `"https://backend.example.com"`
This is the URL for the movie-web backend server which handles cross-device syncing.
The backend server can be found at https://github.com/movie-web/backend and is offered as a [Docker](https://docs.docker.com/get-started/overview/){target="\_blank"} image for deployment.
The backend server can be found at https://github.com/movie-web/backend and is offered as a [Docker](https://docs.docker.com/get-started/overview/) image for deployment.
Backend URL must **not** end with a slash.
### `VITE_HAS_ONBOARDING`
- Type: `boolean`
- Default: `true`
If you want your users to be prompted with an onboarding screen before they start watching, enable this.
### `VITE_ONBOARDING_CHROME_EXTENSION_INSTALL_LINK`
- Type: `string`
- Default: `"https://chromewebstore.google.com/detail/movie-web-extension/hoffoikpiofojilgpofjhnkkamfnnhmm"`
- Example: `"https://google.com"`
When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the proper Chrome extension to install.
If omitted, this will still show the extension onboarding screen, just without an install link for the extension.
### `VITE_ONBOARDING_FIREFOX_EXTENSION_INSTALL_LINK`
- Type: `string`
- Default: `"https://addons.mozilla.org/en-GB/firefox/addon/movie-web-extension"`
- Example: `"https://google.com"`
When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the proper Firefox extension to install.
If omitted, this will still show the extension onboarding screen, just without an install link for the extension.
### `VITE_ONBOARDING_PROXY_INSTALL_LINK`
- Type: `string`
- Default: `""`
- Example: `"https://google.com"`
When onboarding is enabled using `VITE_HAS_ONBOARDING`. This link will be used to link the user to resources to host a custom proxy.
If omitted, this will still show the proxy onboarding screen, just without an documentation link for the proxy.
### `VITE_ALLOW_AUTOPLAY`
- Type: `boolean`
- Default: `false`
Whether to allow autoplay for users that use the host provided proxies.
### `VITE_DISALLOWED_IDS`
- Type: `string`
@@ -105,7 +151,7 @@ The list is comma separated, you can add as many as needed.
- Type: `string`
- Default: `""`
- Example: <code style="overflow-wrap: anywhere">"google.com:example.com,123movies.com:flixhq.to"</code>
- Example: `"google.com:example.com,123movies.com:flixhq.to"`
Sometimes you want to proxy a CDN. This is how you can easily replace a CDN URL with your own.
@@ -116,15 +162,16 @@ The format is `<beforeA>:<afterA>,<beforeB>:<afterB>,...`
- Type: `string`
- Default: `""`
The [Turnstile key](https://dash.cloudflare.com/sign-up?to=/:account/turnstile){target="\_blank"} for Cloudflare captchas. It's used to authenticate requests to proxy workers (or providers API).
The [Turnstile key](https://dash.cloudflare.com/sign-up?to=/:account/turnstile) for Cloudflare captchas. It's used to authenticate requests to proxy workers (or providers API).
[The proxy workers will need to be configured to accept these captcha tokens](../2.proxy/2.configuration.md#turnstile_secret), otherwise it has no effect for security.
[The proxy workers will need to be configured to accept these captcha tokens](../proxy/configuration.mdx#turnstile-secret), otherwise it has no effect for security.
## Config reference - Environment Variables Only
::alert{type="danger"}
:icon{name="material-symbols:warning-rounded"} These configuration keys are specific to environment variables, they **only** work as environment variables **set at build time**.
::
<Caution>
These configuration keys are specific to environment variables, they **only**
work as environment variables **set at build time**.
</Caution>
### `VITE_PWA_ENABLED`
@@ -134,9 +181,18 @@ The [Turnstile key](https://dash.cloudflare.com/sign-up?to=/:account/turnstile){
Set to `true` if you want to output a PWA application. Set to `false` or omit to get a normal web application.
A PWA web application can be installed as an application to your phone or desktop computer, but can be tricky to manage and comes with a few footguns.
::alert{type="warning"}
Make sure you know what you're doing before enabling this, it **cannot be disabled** after you've set it up once.
::
<Warning>
Make sure you know what you're doing before enabling this, it **cannot be
disabled** after you've set it up once.
</Warning>
### `VITE_GA_ID`
- Type: `string`
- Default: `""`
- Example: `"G-1234567890"`
The Google Analytics ID for tracking user behavior. If omitted, no tracking will be done.
### `VITE_APP_DOMAIN`
@@ -144,7 +200,7 @@ Make sure you know what you're doing before enabling this, it **cannot be disabl
- Default: `""`
- Example: `"https://movie-web.app"`
The domain where the app lives. Only required when having the [`VITE_OPENSEARCH_ENABLED`](#vite_opensearch_enabled) option enabled.
The domain where the app lives. Only required when having the [`VITE_OPENSEARCH_ENABLED`](#vite-opensearch-enabled) option enabled.
The value must include the protocol (HTTP/HTTPS) but must **not** end with a slash.
@@ -153,8 +209,8 @@ The value must include the protocol (HTTP/HTTPS) but must **not** end with a sla
- Type: `boolean`
- Default: `false`
Whether to enable [OpenSearch](https://developer.mozilla.org/en-US/docs/Web/OpenSearch){target="\_blank"}, this allows a user to add a search engine to their browser. When enabling you **must** also set [`VITE_APP_DOMAIN`](#vite_app_domain).
Whether to enable [OpenSearch](https://developer.mozilla.org/en-US/docs/Web/OpenSearch), this allows a user to add a search engine to their browser. When enabling you **must** also set [`VITE_APP_DOMAIN`](#vite-app-domain).
::alert{type="warning"}
:icon{name="material-symbols:warning-rounded"} This field is case sensitive, make sure you use the correct casing.
::
<Warning>
This field is case sensitive, make sure you use the correct casing.
</Warning>

111
pages/client/deploy.mdx Normal file
View File

@@ -0,0 +1,111 @@
---
title: 'Deploy'
---
# Deploying the client
## Method 1 - Vercel - Recommended
1. Click [here](https://github.com/movie-web/movie-web/fork) to fork the movie-web Github repository
1. Click [here](https://vercel.com/) to go to Vercel
1. Sign in using either a GitHub, GitLab, or Bitbucket.
1. Clicking the "New Project" button on the top right of your dashboard and following the steps to create a new project for your self hosted version of movie web.
1. After clicking it, you'll be presented with a list of Git repositories that the Git account you've signed up with has write access to.
![image](https://github.com/movie-web/docs/assets/115524074/f0186018-4499-4c29-9d04-f6c421811704)
1. Select your own fork of the movie-web Github repository.
1. Configure the environment variables:
- `VITE_CORS_PROXY_URL`: Enter your proxy URL here. Make sure to not have a slash at the end of your URL.
Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `https://test-proxy.test.workers.dev`
- `VITE_TMDB_READ_API_KEY`: Enter your TMDB Read Access Token here. Please read [the TMDB page](./tmdb.mdx) on how to get an API key.
- `VITE_BACKEND_URL`: Only set if you have a self-hosted backend. Put in your backend URL. Check out [configuration reference](../client/configuration.mdx) for details. Make sure to not have a slash at the end of the URL.
![Screenshot 2024-04-07 at 14-55-24 New Project Vercel](https://github.com/movie-web/docs/assets/115524074/a584ac1d-6e15-4618-8bb2-988985def3e0)
1. Click "Deploy"
1. Congrats! You have your own version of movie-web hosted.
1. You may wish to configure a custom domain - Please consult [the Vercel docs for how to do this](https://vercel.com/docs/getting-started-with-vercel/domains).
## Method 2 - Static Web Host
1. Download the file `movie-web.zip` from the latest release: https://github.com/movie-web/movie-web/releases/latest.
2. Extract the ZIP file so you can edit the files.
3. Open `config.js` in an editor such as Notepad, Visual Studio Code or similar.
4. Put your proxy URL in-between the double quotes of `VITE_CORS_PROXY_URL: ""`. Make sure to not have a slash at the end of your URL.
Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `VITE_CORS_PROXY_URL: "https://test-proxy.test.workers.dev"`
5. Put your TMDB Read Access Token inside the quotes of `VITE_TMDB_READ_API_KEY: ""`. Please read [the TMDB page](./tmdb.mdx) on how to get an API key.
6. If you have a self-hosted backend server, enter your URL in the `VITE_BACKEND_URL` variable. Check out [configuration reference](../client/configuration.mdx) for details. Make sure to not have a slash at the end of the URL.
7. Save the file.
8. Upload **all** of the files to a static website hosting such as:
- GitHub Pages
- Netlify
- Vercel
- Etc, [there are lots of options](https://www.staticwebsitehosting.org/).
9. Congrats! You have your own version of movie-web hosted.
## Method 3 - Docker Compose - Home Network
This method is meant for those using a desktop device or single board computer with a minimum of 4GB of RAM such as a [Raspberry Pi](https://www.raspberrypi.com/) to run movie-web on there home network for network connected devices.
1. Ensure you have [docker](https://docs.docker.com/get-docker/) installed. In a newly created directory called `movie-web` create a file called `docker-compose.yaml`. Paste the contents of the code block below into this file.
```yaml
version: "3.8"
services:
movieweb:
build:
context: https://github.com/movie-web/movie-web.git
# args:
# TMDB_READ_API_KEY: ""
# CORS_PROXY_URL: ""
# BACKEND_URL: ""
ports:
- "80:80"
restart: unless-stopped
```
2. Within the `docker-compose.yaml` file uncomment `args`, `TMDB_READ_API_KEY`, `CORS_PROXY_URL`.
- Make sure `args` is in-line with `context`
- Make sure `TMDB_READ_API_KEY` and `CORS_PROXY_URL` are tabbed once to the right of `args`.
3. Put your proxy URL in-between the double quotes of `CORS_PROXY_URL: ""`. Make sure to not have a slash at the end of your URL.
Example (THIS IS AN EXAMPLE, IT WON'T WORK FOR YOU): `CORS_PROXY_URL: "https://test-proxy.test.workers.dev"`
4. Put your TMDB Read Access Token inside the quotes of `TMDB_READ_API_KEY: ""`. Please read [the TMDB page](./tmdb.mdx) on how to get an API key.
5. Uncomment and add any [additional environment variables](configuration.mdx) you may need. Remove the `VITE_` prefix when adding an environment variable to `args`.
6. Save the file!
7. Now use [docker](https://docs.docker.com/get-docker/) to run `movieweb` as background service.
```bash
# movie-web is the current working directory
$ docker compose up --detach
```
8. Verify that setup was successful
- Navigate to `http://localhost`. You should see the UI for `movie-web`. Find something to watch and make sure that it plays.
- View logs with
```bash
$ docker compose logs --follow movieweb
```
9. Set a static IP address for your device.
- For Raspberry Pi: [guide](https://www.makeuseof.com/raspberry-pi-set-static-ip/)
- For Mac: [guide](https://www.macinstruct.com/tutorials/how-to-set-a-static-ip-address-on-a-mac/)
- For Windows: [guide](https://www.pcmag.com/how-to/how-to-set-up-a-static-ip-address)
10. Navigate to movie web at `http://<static-ip-address` from another device connected to your network.
### To Perform Updates For New Releases of Movie Web
1. Make sure `movie-web` is your current working directory and run:
```bash
# Re-build the image and start the container
$ docker compose up --build --detach
```

3
pages/client/index.tsx Normal file
View File

@@ -0,0 +1,3 @@
import { createRedirect } from '@neato/guider/client';
export default createRedirect({ to: '/client/introduction' });

View File

@@ -8,10 +8,10 @@ The client is what users sees when navigating to your domain, it's the main part
## Progressive Web App
The client can be optionally ran as a [PWA](https://web.dev/explore/progressive-web-apps), which allows it to be installed on a mobile device. **This can be hard to do correctly and really hard if not almost impossible to reverse**, so it's generally not recommended to do so if you don't have experience hosting PWAs. If you understand the risks and still want to continue, then read more about it [here](../1.self-hosting/3.about-pwa.md).
The client can be optionally ran as a [PWA](https://web.dev/explore/progressive-web-apps), which allows it to be installed on a mobile device. **This can be hard to do correctly and really hard if not almost impossible to reverse**, so it's generally not recommended to do so if you don't have experience hosting PWAs. If you understand the risks and still want to continue, then read more about it [here](../self-hosting/about-pwa.mdx).
## Configuration
The client features various configuration options, some of which are required for the client to function. [If you are using Vercel to host the client](1.deploy.md#method-1-vercel-recommended), then the required variables are a necessary part of creating the site, if you're using another host, or hosting it for yourself, you'll need to set them up yourself.
The client features various configuration options, some of which are required for the client to function. [If you are using Vercel to host the client](./deploy.mdx#method-1-vercel-recommended), then the required variables are a necessary part of creating the site, if you're using another host, or hosting it for yourself, you'll need to set them up yourself.
You can view all of the configuration options on the [configurations page](3.configuration.md).
You can view all of the configuration options on the [configurations page](./configuration.mdx).

View File

@@ -4,11 +4,11 @@ title: 'TMDB API Key'
# Getting an API Key
In order to search for movies and TV shows, we use an API called ["The Movie Database" (TMDB)](https://www.themoviedb.org/){target="\_blank"}. For your client to be able to search, you need to generate an API key for yourself.
In order to search for movies and TV shows, we use an API called ["The Movie Database" (TMDB)](https://www.themoviedb.org/). For your client to be able to search, you need to generate an API key for yourself.
::alert{type="info"}
<Note>
The API key is **free**, you just need to create an account.
::
</Note>
1. Create an account at https://www.themoviedb.org/signup
1. You will be required to verify your email; click the link that you get sent to verify your account.

81
pages/client/upgrade.mdx Normal file
View File

@@ -0,0 +1,81 @@
---
title: 'Update guide'
---
# Keeping your instance synced
Keeping your instance up-to-date with the latest features and bug fixes can enhance your instance's functionality and ensure it stays current. When updates are released, you have the option to adopt them using either one of the guides. Below is a automatic and an manual guide on updating your instance.
## Automatic update
You can also setup a scheduled workflow to automatically update your instance. This will allow you to keep your instance up to date without manual intervention.
To do this, you will need to follow the guide below...
<Warning>This upgrade method will only work if your repository is a fork!</Warning>
<Steps>
<Steps.Step>
If you have not already, click [here](https://github.com/movie-web/movie-web/fork) to fork the movie-web Github repository.
</Steps.Step>
<Steps.Step>
Paste the below file into your repository's root `/.github/workflows` directory
```yaml
# File: .github/workflows/sync.yml
name: Sync fork
permissions:
contents: write
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
sync:
name: Sync fork
runs-on: ubuntu-latest
if: ${{ github.event.repository.fork }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Sync fork
run: gh repo sync ${{ github.repository }}
env:
GH_TOKEN: ${{ github.token }}
- uses: gautamkrishnar/keepalive-workflow@v1
```
</Steps.Step>
<Steps.Step>
Commit and push the changes to your repository.
</Steps.Step>
</Steps>
Your instance should now be automatically updated to the latest version.
## Manual update
You can manually update by executing the following commands in the root directory of the repository you have created, you would have to do this every time a push occurs to stay up-to-date:
```bash
git remote add movie-web https://github.com/movie-web/movie-web.git
git fetch movie-web
# Change `dev` to `master` if you want a stable experience
git merge movie-web/dev --allow-unrelated-histories
git push -f # Force push to your origin main branch
```
# Upgrade version
## From `3.X` to `4.X`
You will need the latest version of the proxy worker. Redeploy a new worker using [our self-hosting guide](../proxy/deploy.md).
After you have the new worker, you will need to [get the new movie-web deployment files](https://github.com/movie-web/movie-web/releases/latest). **You CANNOT use the non-PWA version**. To upgrade safely without any complications, you need to update with `movie-web.pwa.zip`, Not the non-PWA version.
In the future, you will **ALWAYS** need to go with the PWA option. You cannot downgrade to non-PWA version without facing many caching complications.

3
pages/extra/index.tsx Normal file
View File

@@ -0,0 +1,3 @@
import { createRedirect } from '@neato/guider/client';
export default createRedirect({ to: '/extra/streaming' });

95
pages/extra/selfhost.mdx Normal file
View File

@@ -0,0 +1,95 @@
### Guide to full Self-Deployment of movie-web with Docker Compose
1. **Install Docker and Docker Compose:**
Ensure that Docker and Docker Compose are installed on your system. You can follow the official Docker documentation for installation instructions:
- [Install Docker](https://docs.docker.com/get-docker/)
2. **Create a Docker Compose file:**
Create a new file named `docker-compose.yml` in your project directory and paste the following content into it:
```yaml
version: '3.8'
services:
postgres:
image: postgres
restart: unless-stopped
environment:
POSTGRES_USER: movie_web_user
POSTGRES_DB: movie_web_backend
POSTGRES_PASSWORD: YourPasswordHere
networks:
- movie-web-network
movie-web-backend:
image: ghcr.io/movie-web/backend:latest
restart: unless-stopped
environment:
MWB_SERVER__CORS: "https://movie-backend.example.tld https://movie.example.tld"
MWB_SERVER__PORT: 8080
MWB_POSTGRES__CONNECTION: postgresql://movie_web_user:YourPasswordHere@postgres:5432/movie_web_backend
MWB_CRYPTO__SESSION_SECRET: 32CHARACTERLONGSECRET
MWB_META__NAME: Server name
MWB_META__DESCRIPTION: Server Description
MWB_POSTGRES__MIGRATE_ON_BOOT: "true"
MWB_SERVER__TRUSTPROXY: "true"
MWB_SERVER__TRUSTCLOUDFLARE: "true"
# This is needed to resolve errors running migrations on some platforms - does not affect the application
MIKRO_ORM_MIGRATIONS_DISABLE_FOREIGN_KEYS: "false"
ports:
- "8080:8080"
depends_on:
- postgres
networks:
- movie-web-network
movie-web-frontend:
build:
context: https://github.com/movie-web/movie-web.git
args:
TMDB_READ_API_KEY: "YourTMDBReadAPIKeyHere"
CORS_PROXY_URL: "https://cors.example.tld https://second.cors.example.tld"
BACKEND_URL: "https://backend.example.tld"
DMCA_EMAIL: "YourEmail"
PWA_ENABLED: "true"
APP_DOMAIN: "YourDomainHere"
OPENSEARCH_ENABLED: "true"
GA_ID: "Google ID Here"
ports:
- "80:80"
networks:
- movie-web-network
restart: unless-stopped
movie-web-proxy:
image: ghcr.io/movie-web/simple-proxy:latest
ports:
- "3000:3000"
networks:
- movie-web-network
restart: unless-stopped
networks:
movie-web-network:
driver: bridge
```
**Important:**
* Replace `YourPasswordHere` with your secure database password.
* Generate a strong session secret and replace `32CharacterLongStringHere`.
* Replace `TMDBReadAPIKey` with your api key learn more [here](../client/tmdb.mdx).
* replace `yourDomainHere` with whatever you'll be using to access your main site, like movie-web.app
* replace `meta__name` and `meta__description`
2. **Start the Backend:** Open a terminal in the directory containing `docker-compose.yml` and execute:
```bash
docker compose up --detach
```
**Accessing Your Backend**
Your services should be accessible on `(YourPrivateIP):port`. To share it outside your local network, you'll need to configure port forwarding or cloudflared tunnel.
**Optional: Implementing a Reverse Proxy**
To enhance your SSL and domain configuration, it's advisable to establish a reverse proxy, such as Nginx. For an optimal choice in this regard, Cloudflare Zero Trust Tunnel is recommended. You can find more information [here](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/get-started/create-remote-tunnel/).

View File

@@ -6,32 +6,33 @@ title: 'Streaming'
This page explains all the different ways you can enable movie-web to stream your favorite movies & TV shows, each with their own pros and cons.
<!-- ## Method 1 - Browser extension
{/* ## Method 1 - Browser extension
The movie-web browser extension is the easiest way to be able to watch media with fast streaming speeds, it is available for both [Chrome] and [Firefox].
This method is great if you only use movie-web on your computer. If you use a mobile device or smart TV, you'll unfortunately have to stick to using a proxy since these devices don't usually support browser extensions.
Since this method uses your own IP, it is undetectable by streaming services, so you can use it to watch your favorite shows without worrying about getting blocked by their servers. -->
Since this method uses your own IP, it is undetectable by streaming services, so you can use it to watch your favorite shows without worrying about getting blocked by their servers.
*/}
## Method 1 - Self-hosted proxy
Self-hosting a proxy is an easy way to get faster streaming speeds, [we have a guide](../2.proxy/1.deploy.md) that explains how to set up one for **free**.
Self-hosting a proxy is an easy way to get faster streaming speeds, [we have a guide](../proxy/deploy.mdx) that explains how to set up one for **free**.
This method is recommended if you want to host a proxy for your friends and or family to use, as it is the faster than using the public proxy and the most reliable way to stream media at the moment.
<!-- This method is recommended if you want to host a proxy for your friends and family to use, or if you want to use movie-web on a device that doesn't support the [browser extension](#method-1---browser-extension), such as a smart TV or mobile device. -->
{/* This method is recommended if you want to host a proxy for your friends and family to use, or if you want to use movie-web on a device that doesn't support the [browser extension](#method-1---browser-extension), such as a smart TV or mobile device.*/}
1. Set up a proxy using one of our [guides](../2.proxy/1.deploy.md#deploying-the-proxy), [though we recommend Netlify](../2.proxy/1.deploy.md#method-1---netlify-easy).
2. Once that's done, go to the [Connections](https://movie-web.app/settings#settings-connection){target="\_blank"} section of the [Settings page](https://movie-web.app/settings){target="\_blank"} on [movie-web](https://movie-web.app){target="\_blank"}.
1. Set up a proxy using one of our [guides](../proxy/deploy.mdx), [though we recommend Netlify](../proxy/deploy.mdx#method-1-netlify-easy).
2. Once that's done, go to the **Connections** section of the **Settings page** on your movie-web instance of choice.
3. Enable `Use custom proxy workers` if it's not already enabled.
4. Add a new custom proxy by clicking `Add new worker`.
5. Copy the URL of the proxy you deployed before, and paste it into the empty text box.
![Example of settings page](/assets/proxy-url-example.gif)
::alert{type="info"}
If you're self-hosting the client, you can use the [`VITE_CORS_PROXY_URL`](../3.client/3.configuration.md#vite_cors_proxy_url) variable to set the proxy URL for everyone who uses your client.
::
<Note>
If you're self-hosting the client, you can use the [`VITE_CORS_PROXY_URL`](../client/configuration.mdx#vite-cors-proxy-url) variable to set the proxy URL for everyone who uses your client.
</Note>
## Method 2 - Public proxy
@@ -39,4 +40,4 @@ The public proxy is the easiest way to get started with movie-web as it is the d
If you are using the main website, then you are most likely already using the public proxy. Unfortunately you will most likely be getting slower speeds and your video might be buffering more often, which is why we recommend using a self-hosted proxy if you can.
This is not the case with self-hosted clients, there is no proxy set up by default on self-hosted clients and you will need to [set up one yourself](../2.proxy/1.deploy.md).
This is not the case with self-hosted clients, there is no proxy set up by default on self-hosted clients and you will need to [set up one yourself](../proxy/deploy.mdx).

67
pages/index.tsx Normal file
View File

@@ -0,0 +1,67 @@
import {
Button,
Card,
CardGrid,
GuiderLayout,
Hero,
} from '@neato/guider/client';
export default function LandingPage() {
return (
<GuiderLayout meta={{ layout: 'page' }}>
<Hero>
<Hero.Title>movie-web</Hero.Title>
<Hero.Subtitle>
A simple and no-BS app for watching movies and TV shows. Totally free
and open source, forever.
</Hero.Subtitle>
<Hero.Actions>
<Button to="/self-hosting/hosting-intro">Get Started</Button>
<Button to="https://github.com/movie-web/movie-web" type="secondary">
Open on GitHub
</Button>
</Hero.Actions>
</Hero>
<CardGrid>
<Card icon="mdi:server-network" title="Easy to host">
Can be easily hosted on any static website host.
</Card>
<Card icon="material-symbols:hangout-video-off" title="No Ads">
movie-web will never show ads, enjoy watching without interruptions.
</Card>
<Card icon="ic:baseline-ondemand-video" title="Custom Player">
Enjoy a fully custom video player including streaming integration,
subtitle customization and easy TV season navigation.
</Card>
<Card icon="mdi:content-save" title="Saves your progress">
Will remember your progress in movies and TV shows, so you can easily
continue where you left off.
</Card>
<Card icon="mdi:bookmark" title="Bookmarking">
Allows you to bookmark your favorite movies and TV shows, so you can
easily find them again.
</Card>
<Card icon="mdi:cloud-refresh" title="Syncing across devices">
Enjoy uninterrupted streaming as your progress, proxies, and bookmarks
sync effortlessly across all your devices.
</Card>
<Card icon="mdi:power-plug-outline" title="Modular by design">
Mix and match different parts of the movie-web service, host your
backend or use ours, it&apos;ll work either way.
</Card>
<Card icon="mdi:flag" title="Multiple Languages">
Supports over 25 languages, including English, German, French,
Spanish, Italian, Czech, Hindi, Arabic, Hebrew and more.
</Card>
<Card icon="mdi:brush-variant" title="Customizable">
Supports various themes, subtitle colors and subtitle sizes so you can
make it look however you want.
</Card>
<Card icon="mdi:cellphone" title="Progressive Web App Support">
Supports PWA, so you can install it on your phone and use it just like
a native app.
</Card>
</CardGrid>
</GuiderLayout>
);
}

48
pages/instances.mdx Normal file
View File

@@ -0,0 +1,48 @@
---
title: 'Instances'
---
# Instances
This page showcases movie-web instances hosted by the community and other alternative sites.
## Community Instances
The community maintains these trusted instances, which are likely to be up-to-date. Remember that since these are volunteer instances, they might be down or stop working anytime. If you want to be sure you have access to movie-web, consider [hosting your own instance](../self-hosting/hosting-intro.mdx).
**Instances marked with a 💾 have set up a backend, making it possible to sync your data across multiple devices.**
**Additionally, instances with a 🌐 use the community backend hosted by Lonelil, which has all the original movie-web.app data!**
**Moreover, instances marked with a 📱 have full PWA compatibility, enabling usage on your mobile device as if it were a native application.**
| Instance | Host | Status |
| :------------------------------------------------ | :---------------------------------------------------------------------------------- | :------- |
| [mw.lonelil.ru](https://mw.lonelil.ru) | [lonelil - Partner](https://github.com/lonelil) | 💾🌐📱 |
| [watch.qtchaos.de](https://watch.qtchaos.de) | [chaos - Project Lead](https://github.com/qtchaos) | 💾📱 |
| [bmov.app](https://bmov.app) | [TheScreechingBagel - Mod](https://github.com/TheScreechingBagel) | 💾🌐 |
| [stream.thehairy.me](https://stream.thehairy.me) | [thehairy - Mod](https://github.com/thehairy) | 💾🌐📱 |
| [movie-web-me](https://movie-web-me.vercel.app) | [Isra - Contributor](https://github.com/zisra) | 💾🌐 |
| [scootydooter](https://scootydooter.vercel.app) | [Toon - Contributor](https://github.com/Toon-arch) | 💾🌐📱 |
| [sudo-flix.lol](https://sudo-flix.lol) | [itzCozi - Contributor](https://github.com/sussy-code) | 💾📱 |
| [movie-web.x](https://movie-web.x) | [Unstoppable Domains](https://unstoppabledomains.com) and [IPFS](https://ipfs.tech) | 💾 |
<Note>
[movie-web.x](https://movie-web.x) is only accessible using Brave, Opera or installing an [extension](https://unstoppabledomains.com/extension) to resolve unstoppable domains.
If you cannot access [movie-web.x](https://movie-web.x) try using a gateway: [Cloudflare](https://cloudflare-ipfs.com/ipns/k51qzi5uqu5diql6nkzokwdvz9511dp9itillc7xhixptq14tk1oz8agh3wrjd), [dweb.link](https://k51qzi5uqu5diql6nkzokwdvz9511dp9itillc7xhixptq14tk1oz8agh3wrjd.ipns.dweb.link), or [cf-ipfs](https://k51qzi5uqu5diql6nkzokwdvz9511dp9itillc7xhixptq14tk1oz8agh3wrjd.ipns.cf-ipfs.com)
</Note>
## Community Backend
Our partner, Lonelil, has kindly offered to host a movie-web backend with a copy of the original data from the movie-web.app. You can access this backend at: `https://mw-backend.lonelil.ru`
You **do not** have to set up a new account; you can use your previous passphrase from movie-web, and all of your data will be there!
## Alternatives
These sites are not related to movie-web but are good enough to switch to if the official instances are down. You can also use [FMHY](https://fmhy.pages.dev/videopiracyguide) to find even more options.
- [watch.lonelil.ru](https://watch.lonelil.ru)
- [themoviearchive.site](https://themoviearchive.site)
- [braflix.video](https://braflix.video)
- [watch.streamflix.one](https://watch.streamflix.one)

View File

@@ -18,7 +18,7 @@ title: 'Changelog'
# Version 2.1.0
- [Added Turnstile integration](2.configuration.md#turnstile_secret) to secure your workers from abuse.
- [Added Turnstile integration](./configuration.mdx#turnstile-secret) to secure your workers from abuse.
# Version 2.0.1

View File

@@ -4,7 +4,7 @@ title: 'Configuration'
# Proxy Config Reference
Adding environment variables is different for every platform, [here's a guide on how to add environment variables on Cloudflare](https://developers.cloudflare.com/workers/configuration/environment-variables/#add-environment-variables-via-the-dashboard){target="\_blank"}. You'll have to do some research on your own if you aren't hosting the proxy on Cloudflare.
Adding environment variables is different for every platform, [here's a guide on how to add environment variables on Cloudflare](https://developers.cloudflare.com/workers/configuration/environment-variables/#add-environment-variables-via-the-dashboard). You'll have to do some research on your own if you aren't hosting the proxy on Cloudflare.
# Reference
@@ -13,10 +13,11 @@ Adding environment variables is different for every platform, [here's a guide on
- Type: `string`
- Default: `""`
Turnstile secret key from the [Cloudflare dashboard](https://dash.cloudflare.com/sign-up?to=/:account/turnstile){target="\_blank"}.
::alert{type="warning"}
Keep in mind that you will also need to [configure the Turnstile key on the client](../3.client/3.configuration.md#vite_turnstile_key) and **configure the [`JWT_SECRET`](#jwt_secret) below.**
::
Turnstile secret key from the [Cloudflare dashboard](https://dash.cloudflare.com/sign-up?to=/:account/turnstile).
<Warning>
Keep in mind that you will also need to [configure the Turnstile key on the client](../client/configuration.mdx#vite-turnstile-key) and **configure the [`JWT_SECRET`](#jwt-secret) below.**
</Warning>
### `JWT_SECRET`

View File

@@ -8,7 +8,7 @@ title: 'Deploy'
Netlify has a very generous free plan, so you'll be able to host your proxy for free unless you get hundreds of users.
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/movie-web/simple-proxy){target="\_blank"}
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/movie-web/simple-proxy)
1. Create a GitHub account at https://github.com/signup if you don't have one already.
1. Click on the `Deploy to Netlify` button above.
@@ -16,23 +16,27 @@ Netlify has a very generous free plan, so you'll be able to host your proxy for
1. There should now be a `Save & Deploy` button, click it.
1. Once the deployment is complete, click on the `Get Started` button that pops up, this will redirect you to the dashboard of your site.
1. Click on the only site in the `Sites` section of your dashboard.
1. Find the link of your site near the top of the page, it should look something like `https://<random-words>.netlify.app`. Right click the link, click `Copy link address`. [Now you'll just have to set up the client](../5.extra/1.streaming.md#method-1---self-hosted-proxy)!
1. Find the link of your site near the top of the page, it should look something like `https://<random-words>.netlify.app`. Right click the link, click `Copy link address`. [Now you'll just have to set up the client](../extra/streaming.mdx#method-1-self-hosted-proxy)!
## Method 2 - Cloudflare (Easy)
<Warning>
The sources showbox and febbox do NOT work with cloudflare. Use a different host if you want those to work.
</Warning>
Cloudflare has a generous free plan, so you don't need to pay anything unless you get hundreds of users.
[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/movie-web/simple-proxy){target="\_blank"}
[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/movie-web/simple-proxy)
1. Create a GitHub account at https://github.com if you don't have one.
1. Click the `Deploy with workers` button above.
1. Click the `Authorize Workers` button to authorize Cloudflare to talk to GitHub.
1. Authorize Cloudflare Workers in the GitHub page that pops up.
1. Follow the instructions to configure your Cloudflare account. Select `I have an account` if you have a Cloudflare account already, otherwise follow the link to create one.
1. Click the link to [`Workers Dashboard`](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages){target="\_blank"} to find your account ID.
1. Click the link to [`Workers Dashboard`](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages) to find your account ID.
1. You can copy your account ID from the URL e.g. https://dash.cloudflare.com/ab7cb454c93987b6343350d4e84c16c7/workers-and-pages/create where `ab7cb454c93987b6343350d4e84c16c7` is the account ID.
1. Paste the account ID into the text box on the original Cloudflare workers page.
1. Click the link to [`My Profile`](https://dash.cloudflare.com/profile/api-tokens){target="\_blank"}, to create an API token.
1. Click the link to [`My Profile`](https://dash.cloudflare.com/profile/api-tokens), to create an API token.
1. Click `Create Token`.
1. Select `Use template` next to `Edit Cloudflare Workers`.
1. Under `Account Resources`, select `Include` and your account under the dropdown.
@@ -44,12 +48,16 @@ Cloudflare has a generous free plan, so you don't need to pay anything unless yo
1. Click `Fork the Repository` and follow the instructions to enable workflows.
1. Click `Deploy` to deploy to Cloudflare Workers.
1. Congratulations! Your worker is now deploying. Please wait for the GitHub Action to build and publish your worker.
1. You can click the [`Worker dash`](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages){target="\_blank"} and `GitHub repo` buttons to see the status of the deploy.
1. When the worker has deployed, you will need to take note of the URL. This can be found on Cloudflare under [Workers and Pages -> Overview](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages){target="\_blank"} -> Proxy.
1. Use the URL you took note of and [set up a custom proxy in the client](../5.extra/1.streaming.md#method-1---self-hosted-proxy).
1. You can click the [`Worker dash`](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages) and `GitHub repo` buttons to see the status of the deploy.
1. When the worker has deployed, you will need to take note of the URL. This can be found on Cloudflare under [Workers and Pages -> Overview](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages) -> Proxy.
1. Use the URL you took note of and [set up a custom proxy in the client](../extra/streaming.mdx#method-1-self-hosted-proxy).
## Method 2 - Cloudflare (Manual)
<Warning>
The sources showbox and febbox do NOT work with cloudflare. Use a different host if you want those to work.
</Warning>
1. Login to your Cloudflare account if you have one, otherwise create one [here](https://dash.cloudflare.com/sign-up?to=/:account/workers-and-pages)
1. If you are signing up for an account, make sure to verify your email before going further!
1. Download the latest version of the Cloudflare [`simple-proxy-cloudflare.mjs` script from here](https://github.com/movie-web/simple-proxy/releases/latest/download/simple-proxy-cloudflare.mjs).
@@ -80,16 +88,16 @@ Railway offers you $5 of credit once you verify your account, which is enough to
1. If a `Configure` button is displayed, click on it and allow Railway to access your GitHub account.
1. The `Deploy` button at the bottom of the template should be active, click on it.
1. Once the proxy has deployed, copy the URL from the `Deployments` page.
1. Congratulations! You have deployed the proxy, [you can now set up the client](../5.extra/1.streaming.md#method-1---self-hosted-proxy).
1. Congratulations! You have deployed the proxy, [you can now set up the client](../extra/streaming.mdx#method-1-self-hosted-proxy).
## Method 4 - Docker
::alert{type="warning"}
<Warning>
Experience with Docker, domains and web hosting is **highly recommended** for this method. <br />
[Deploying with Cloudflare](#method-1-cloudflare-easy) is easier and safer to do! You are exposing your server at your own risk!
::
[Deploying with Netlify](#method-1-netlify-easy) is easier and safer to do! You are exposing your server at your own risk!
</Warning>
Our `simple-proxy` application is available from the GitHub Container Registry under the image [`ghcr.io/movie-web/simple-proxy:latest`](https://ghcr.io/movie-web/simple-proxy:latest){target="\_blank"} :copy-button{content="ghcr.io/movie-web/simple-proxy:latest"}
Our `simple-proxy` application is available from the GitHub Container Registry under the image [`ghcr.io/movie-web/simple-proxy:latest`](https://ghcr.io/movie-web/simple-proxy:latest)
The container exposes the HTTP port (Without TLS/SSL) as `3000/TCP`.

3
pages/proxy/index.tsx Normal file
View File

@@ -0,0 +1,3 @@
import { createRedirect } from '@neato/guider/client';
export default createRedirect({ to: '/proxy/introduction' });

View File

@@ -8,4 +8,4 @@ Our proxy is used to bypass CORS-protected URLs on the client side, allowing use
The proxy is made using [Nitro by UnJS](https://nitro.unjs.io/) which supports building the proxy to work on multiple providers including Cloudflare Workers, AWS Lambda and [more...](https://nitro.unjs.io/deploy)
Our recommended provider is Cloudflare due to its [generous free plan](https://www.cloudflare.com/en-gb/plans/developer-platform/).
Our recommended provider is Netlify due to its [generous free plan](https://www.netlify.com/pricing/#core-pricing-table).

View File

@@ -6,17 +6,17 @@ title: 'PWA vs no-PWA'
So that clients can have a more native app-like experience on mobile, movie-web has a function to support Progressive Web Apps (PWA). You can learn more about what a PWA is [here](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/What_is_a_progressive_web_app).
In movie-web version 3, PWAs were enabled by default. Unfortunately, PWAs tend to come with caching complications that can be tricky to resolve. That's why we have **disabled** PWAs by default in movie-web version 4. If you are upgrading from version 3, please [read our upgrade guide](../3.client/5.upgrade.md) for more information.
In movie-web version 3, PWAs were enabled by default. Unfortunately, PWAs tend to come with caching complications that can be tricky to resolve. That's why we have **disabled** PWAs by default in movie-web version 4. If you are upgrading from version 3, please [read our upgrade guide](../client/upgrade.mdx) for more information.
::alert{type="warning"}
<Warning>
Enabling PWAs means that you cannot disable it again - Please only proceed if you know what you are doing!
::
</Warning>
## If you are running movie-web on a hosting platform such as Vercel
If your hosting is building movie-web from the source, you can enable PWAs using the [`VITE_PWA_ENABLED`](../3.client/3.configuration.md#vite_pwa_enabled) environment variable.
If your hosting is building movie-web from the source, you can enable PWAs using the [`VITE_PWA_ENABLED`](../client/configuration.mdx#vite-pwa-enabled) environment variable.
Setting [`VITE_PWA_ENABLED`](../3.client/3.configuration.md#vite_pwa_enabled) to `true` will generate a [service worker file](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#service_worker) and a [web app manifest](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#the_web_app_manifest) which enable the website to be installed from a [web browser both on Desktop and on Mobile](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#installation_from_the_web).
Setting [`VITE_PWA_ENABLED`](../client/configuration.mdx#vite-pwa-enabled) to `true` will generate a [service worker file](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#service_worker) and a [web app manifest](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#the_web_app_manifest) which enable the website to be installed from a [web browser both on Desktop and on Mobile](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/Making_PWAs_installable#installation_from_the_web).
## If you are running movie-web using the .zip files

View File

@@ -4,33 +4,33 @@ title: 'Start self-hosting'
# How to self-host
::alert{type="info"}
We **do not** provide support on how to self-host. If you can't figure it out then tough luck. Please do not make GitHub issues or ask in our Discord server for support on how to self-host.
::
<Note>
We provide support on a case-by-case basis. If you have any questions, feel free to ask in our [Discord server](https://movie-web.github.io/links/discord).
</Note>
Since movie-web has many different components, there are a few configurations of how you can host it. Each of these configurations has their own benefits, whether that be having complete control over your data or customizing your experience.
**If you don't know what to choose, go with [method 1.](#method-1---only-host-the-frontend)**
**If you don't know what to choose, go with [method 1.](#method-1-only-host-the-frontend)**
## Method 1 - Only host the frontend
With this method, you only host the essential parts that make movie-web work. But keep using the account server from official movie-web.
This method is the easiest to self-host and is recommended for most users.
1. [Set up the Proxy!](../2.proxy/1.deploy.md)
2. [Set up the Client!](../3.client/1.deploy.md)
1. [Set up the Proxy!](../proxy/deploy.mdx)
2. [Set up the Client!](../client/deploy.mdx)
## Method 2 - Only host the account server
If you want to own your own data, it's possible to self-host just the account server and nothing else.
This method is only recommended if you have experience hosting databases or other similar stateful applications.
1. [Set up the Backend!](../4.backend/1.deploy.md)
2. [Configure the Client!](../3.client/1.deploy.md)
1. [Set up the Backend!](../backend/deploy.mdx)
2. [Configure the Client!](../client/deploy.mdx)
## Method 3 - Host everything
If you want an instance that's completely isolated from the official movie-web. You can self-host all of the parts yourself, though this method is not recommended for inexperienced hosters.
1. [Set up the Proxy!](../2.proxy/1.deploy.md)
2. [Set up the Backend!](../4.backend/1.deploy.md)
3. [Set up the Client!](../3.client/1.deploy.md)
1. [Set up the Proxy!](../proxy/deploy.mdx)
2. [Set up the Backend!](../backend/deploy.mdx)
3. [Set up the Client!](../client/deploy.mdx)

View File

@@ -0,0 +1,3 @@
import { createRedirect } from '@neato/guider/client';
export default createRedirect({ to: '/self-hosting/hosting-intro' });

View File

@@ -12,13 +12,13 @@ There is always a possibility for something to go wrong while trying to deploy y
If the test succeeds, then your TMDB configuration is correct and the issue is with something else.
If the test fails, then you should recheck your credentials. [**Make sure you're using the Read Access Token, not the normal API Key.**](https://www.themoviedb.org/settings/api#v4_auth_key){target="\_blank"}
If the test fails, then you should recheck your credentials. [**Make sure you're using the Read Access Token, not the normal API Key.**](https://www.themoviedb.org/settings/api#v4_auth_key)
## Everything I try to watch fails
**This is likely a misconfigured Worker.** To make sure that the Workers are the issue, visit `/admin` or `/#/admin`, then click on the `Test workers` button.
You should have at least 1 Worker registered, if you don't, you should [deploy a worker](../2.proxy/1.deploy.md#method-1---cloudflare-easy) and [set it up in the client](../3.client/3.configuration.md#vite_cors_proxy_url).
You should have at least 1 Worker registered, if you don't, you should [deploy a worker](../proxy/deploy.mdx) and [set it up in the client](../client/configuration.mdx#vite-cors-proxy-url).
If any Worker fails the test, you should double check its URL and see if its up to date with the latest updates.
@@ -26,19 +26,19 @@ If any Worker fails the test, you should double check its URL and see if its up
**This is likely misconfigured or broken backend.** To verify that the backend is the issue, visit `/admin` or `/#/admin`, then click on the `Test backend` button.
If the backend is online and properly configured it should display the name and version of the backend. If the name and description of the test don't match your own instance, [make sure you have your backend URL set correctly.](../3.client/3.configuration.md#vite_backend_url)
If the backend is online and properly configured it should display the name and version of the backend. If the name and description of the test don't match your own instance, [make sure you have your backend URL set correctly.](../client/configuration.mdx#vite-backend-url)
If the test gives you an error, your [backend URL configuration option](../3.client/3.configuration.md#vite_backend_url) likely has a typo.
If the test gives you an error, your [backend URL configuration option](../client/configuration.mdx#vite-backend-url) likely has a typo.
If the version that shows up on your backend is not the latest version, you should update your backend to keep up with the latest changes.
## I updated from version 3 to version 4 but I still see the old version
It is likely that you haven't installed the PWA version of movie-web. Please read the [upgrade guide](../3.client/5.upgrade.md) for more details on the matter.
It is likely that you haven't installed the PWA version of movie-web. Please read the [upgrade guide](../client/upgrade.mdx) for more details on the matter.
## I'm getting SSL issues when using a hosted postgres database
You are most likely missing the [`postgres.ssl`](../4.backend/2.configuration.md#postgresssl) variable on your backend, enable it and the connection should work.
You are most likely missing the [`postgres.ssl`](../backend/configuration.mdx#postgres-ssl) variable on your backend, enable it and the connection should work.
## Permission denied to set parameter "session_replication_role"

View File

@@ -6,9 +6,9 @@ title: 'Configure backend'
If you would like to use an alternative backend server (the server responsible for saving user data across devices) then you can specify your own URL **without needing to host your own movie-web frontend!**
::alert{type="danger"}
<Caution>
Changing your backend server will log you out of your account - make sure you have a copy of your 12-word passphrase saved in case you need to go back!
::
</Caution>
1. On movie-web, click the menu icon at the top right and then `Settings`.
1. Scroll down the page to the `Connections` section.

9442
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +0,0 @@
{
"extends": ["@nuxtjs"],
"lockFileMaintenance": {
"enabled": true
}
}

94
theme.config.tsx Normal file
View File

@@ -0,0 +1,94 @@
import { defineTheme, directory, group, link, social } from '@neato/guider/theme';
import { Logo } from './components/Logo';
import { NextSeo } from 'next-seo';
import coverUrl from "./public/cover.png";
import faviconUrl from "./public/favicon.ico";
export default defineTheme({
github: "movie-web/movie-web",
contentFooter: {
text: "Made with 💜",
editRepositoryBase: "https://github.com/movie-web/docs/blob/master",
socials: [
social.github("https://github.com/movie-web"),
social.discord("https://movie-web.github.io/links/discord"),
]
},
meta: (pageMeta) => (
<NextSeo {...{
title: `${pageMeta.title ?? "For all your movie and TV show needs"} | movie-web`,
description: pageMeta.description ?? "movie-web is a free and open source streaming site, no ads, no tracking, no nonsense.",
openGraph: {
images: [{
url: coverUrl.src,
}],
title: `${pageMeta.title ?? "For all your movie and TV show needs"} | movie-web`,
description: pageMeta.description ?? "movie-web is a free and open source streaming site, no ads, no tracking, no nonsense.",
},
twitter: {
cardType: 'summary_large_image',
},
additionalLinkTags: [
{
href: faviconUrl.src,
rel: "icon",
type: "image/x-icon",
}
]
}} />
),
settings: {
logo: () => <Logo />,
colors: {
"primary": "#A476D9",
"primaryLighter": "#C4ADDE",
"primaryDarker": "#6E23C3",
"background": "#0C0B13",
"backgroundLighter": "#1A1726",
"backgroundLightest": "#282438",
"backgroundDarker": "#000000",
"line": "#37334C",
"text": "#8C899A",
"textLighter": "#A6A4AE",
"textHighlight": "#fff"
}
},
directories: [
directory("main", {
sidebar: [
link("Instances", "/instances", { icon: 'mdi:web' }),
group("Self-Hosting", [
link("Start self-hosting", "/self-hosting/hosting-intro"),
link("Configure backend", "/self-hosting/use-backend"),
link("PWA vs no-PWA", "/self-hosting/about-pwa"),
link("Troubleshooting", "/self-hosting/troubleshooting"),
]),
group("Proxy", [
link("Introduction", "/proxy/introduction"),
link("Deploy", "/proxy/deploy"),
link("Configuration", "/proxy/configuration"),
link("Changelog", "/proxy/changelog"),
]),
group("Client", [
link("Introduction", "/client/introduction"),
link("Deploy", "/client/deploy"),
link("TMDB API Key", "/client/tmdb"),
link("Configuration", "/client/configuration"),
link("Changelog", "/client/changelog"),
link("Update guide", "/client/upgrade"),
]),
group("Backend", [
link("Introduction", "/backend/introduction"),
link("Deploy", "/backend/deploy"),
link("Configuration", "/backend/configuration"),
link("Changelog", "/backend/changelog"),
link("Update guide", "/backend/upgrade"),
]),
group("Extra", [
link("Streaming", "/extra/streaming"),
link("Selfhost", "/extra/selfhost"),
])
]
})
],
});

View File

@@ -1,18 +0,0 @@
import { defineTheme } from 'pinceau';
export default defineTheme({
color: {
primary: {
50: '#F5E5FF',
100: '#E7CCFF',
200: '#D4A9FF',
300: '#BE85FF',
400: '#A861FF',
500: '#8E3DFF',
600: '#7F36D4',
700: '#662CA6',
800: '#552578',
900: '#441E49',
},
},
});

View File

@@ -1,3 +1,28 @@
{
"extends": "./.nuxt/tsconfig.json"
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"noEmit": true,
"incremental": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "Bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
]
}