Merge branch 'master' into master

This commit is contained in:
sudo-flix
2024-03-05 19:49:23 -05:00
committed by GitHub
3 changed files with 135 additions and 22 deletions

View File

@@ -26,12 +26,14 @@ The community maintains these trusted instances, meaning they are likely to be u
| [sudo-flix.lol](https://sudo-flix.lol) | [itzCozi - Community Self Hoster](https://gitlab.com/itzCozi) | 💾📱 |
| [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), [cf-ipfs](https://k51qzi5uqu5diql6nkzokwdvz9511dp9itillc7xhixptq14tk1oz8agh3wrjd.ipns.cf-ipfs.com)
::alert{type="info"}
[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)
::
## 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.com`
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.com` or `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!
@@ -39,7 +41,7 @@ You **do not** have to set up a new account; you can use your previous passphras
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.com](https://watch.lonelil.com)
* [themoviearchive.site](https://themoviearchive.site)
* [braflix.video](https://braflix.video)
* [watch.streamflix.one](https://watch.streamflix.one)
- [watch.lonelil.com](https://watch.lonelil.com)
- [themoviearchive.site](https://themoviearchive.site)
- [braflix.video](https://braflix.video)
- [watch.streamflix.one](https://watch.streamflix.one)

View File

@@ -43,3 +43,67 @@ title: 'Deploy'
- Vercel
- Etc, [there are lots of options](https://www.staticwebsitehosting.org/){target="\_blank"}.
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](2.tmdb.md) on how to get an API key.
5. Uncomment and add any [additional environment variables](3.configuration.md) 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
```

View File

@@ -12,26 +12,73 @@ For configuration, check out the [configuration reference](2.configuration.md).
The postgres database will need to be populated with [migrations](0.introduction.md#migrations) if `postgres.migrateOnBoot` isn't enabled.
::
## Method 1 - Docker
## Method 1 - Docker Deployment
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.
This method provides a straightforward setup with minimal configuration. For more extensive customization, see the [Configuration Reference](2.configuration.md).
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.
**Prerequisites**
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.
* **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/)
For other versions of the image, [check out the package page](https://github.com/movie-web/backend/pkgs/container/backend){target="\_blank"}.
**Setup**
1. **Create `docker-compose.yml`:**
```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
```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
```
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.
**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)