Ctrl K
ComunidadGuías…

LOCAL_INSTALL.md

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 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.