LOCAL_INSTALL.md
Rama master · réplica de lectura del repositorio original.
# Local installation (no docker)
## Prerequisites
You will need to have
- Git clone of this repo (you can `git clone git@github.com:Yooooomi/your_spotify.git --depth=1`)
- A mongo database
- NodeJS
## Hosting backend
- Go to the server directory and `yarn` in it
- Run `yarn build`
- Run `yarn migrate` with the right environment variables
- Run `node lib/bin/www.js` the right environment variables
The environment variables are the same as in the docker-compose for server, with an additional `PORT` variable you can set.
## Hosting client
- Go to the client directory and `yarn` in it
- Run `yarn build`
- In the build directory produced, copy `variables-template.js` into `variables.js` and replace the endpoint with the API_ENDPOINT, that is the endpoint of your backend
- Host the static website in the build directory the way you want, I personally use `serve`
> Note that you need to redirect all 404 errors to index.html, serve does this by default.
> You can find an `.htaccess` file for Apache2.
### Using systemd user unit
You can have the Mongo and backend running through systemd user units.
- Create a systemd unit file in your home directory at `.config/systemd/user/` (create the folders if they don't exist) and name it something like `your_spotify.service`.
File content should be something like (seperate one for MongoDB if needed):
```
[Unit]
Description=Your Spotify Backend
Wants=network-online.target mongodb.service
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
EnvironmentFile=/home/YOUR_USER/sites/applications/spotify/your_spotify/server/.env
ExecStart=/home/YOUR_USER/.nvm/versions/node/v16.14.0/bin/node lib/bin/www
StandardOutput=journal
Restart=on-failure
WorkingDirectory=/home/YOUR_USER/sites/applications/spotify/your_spotify/server
[Install]
WantedBy=multi-user.target
```
> Refrenced env file only has the ENV variables in it.
Example MongoDB version of the systemd unit file:
```
[Unit]
Description=MongoDB
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
Type=forking
ExecStart=/home/YOUR_USER/filesystem/bin/mongod --dbpath /home/YOUR_USER/filesystem/var/lib/mongo --logpath /home/YOUR_USER/filesystem/var/log/mongodb/mongod.log --fork --bind_ip 127.0.0.1 --port 40097
StandardOutput=journal
Restart=on-failure
WorkingDirectory=/home/YOUR_USER/filesystem/
[Install]
WantedBy=multi-user.target
```
- Enable the services and start them with `systemctl --user --now enable mongodb` and `systemctl --user --now enable your_spotify`.
- The backend should have started up properly.