Source repository for setting up a private movie sharing website.
- Simple HTTPS interface for movie-watching
- Automated infrastructure management with Terraform and Ansible (so you can easily shutdown/start server to save cost)
- Automated movie syncing
git clone https://github.com/eankeen/fox-night
cd fox-night
yarn install
yarn build && yarn start
git clone https://github.com/eankeen/fox-night
cd fox-night
just prepare
just provision
Variables contained within this IAC should be flexible enough to cater to you. They are contained in two locoations: ./ansible/roles/common/vars/main.yml' and
./terraform/terraform.tfvars`; override or replace them however you wish
-
password
,user
- default password and user for the VPS
-
domain_name
- domain name. Used for Caddy's automatic HTTPS certification registration
- Ensure registrar is pointing to DigitalOcean's name servers (
ns1.digitalocean.com
, etc). (We will handle the rest)
-
folder_name
- folder name within
/home/{{ user }}
to rsync the source code to. This also changes the name of the systemd service file
- folder name within
-
web_username
- username to enter when navigating to site (by defualt,
user
)
- username to enter when navigating to site (by defualt,
-
web_password
- password to enter when navigating to site (by default, the same value as
folder_name
)
- password to enter when navigating to site (by default, the same value as
-
node_port
- port that the NodeJS server attaches to
-
digital_ocean_token
- your Digital Ocean API key
- Place Media in proper location
- Captions:
./local/captions.vtt
- Movie Information:
./local/info.toml
- Movie:
./local/movie.mp4
I recommend cliflix for searching and downloading movies. Of course, ensure you're connected to a VPN
- Sync to server
just provision_tag rsync-movie
- Syncing will occur automatically on first provision
- See
./ansible/roles/common/tasks/rsync.yml
for implementation detail. See./old
to sync yourself
- Easily remote in
just ssh
- Shut down infra to save on cost
just destroy