From a86e9f832353288115ba2ebe6bcad11a2cc662ac Mon Sep 17 00:00:00 2001 From: Kana Date: Fri, 1 Mar 2019 00:17:31 +0900 Subject: Create nginx.md --- docs/nginx.md | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 docs/nginx.md (limited to 'docs') diff --git a/docs/nginx.md b/docs/nginx.md new file mode 100644 index 0000000..436dcfb --- /dev/null +++ b/docs/nginx.md @@ -0,0 +1,92 @@ +### Nginx config for SSL +Make sure that: +- `backend` and `frontend` ports match your wizard config +- `client_max_body_size` matches your wizard config +- You replace `your.domain` where pertinent +- You point the `root` folder to your uploads folder + + +```nginx +upstream backend { + server 127.0.0.1:5000; +} + +upstream frontend { + server 127.0.0.1:5005; +} + +server { + listen 80; + listen [::]:80; + server_name your.domain; + + return 301 https://$server_name$request_uri; +} + +server { + listen 443 ssl http2; + listen [::]:443 ssl http2; + + server_name your.domain; + + ssl_certificate /path/to/certificate.pem; + ssl_certificate_key /path/to/certificate.key; + ssl_trusted_certificate /path/to/certificate.pem; + + access_log /var/log/nginx/your.domain.access.log; + error_log /var/log/nginx/your.domain.error.log; + + # Security + ssl_session_timeout 1d; + ssl_session_cache shared:SSL:50m; + ssl_session_tickets off; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128- + GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SH + A:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM + -SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS'; + ssl_prefer_server_ciphers on; + add_header X-XSS-Protection "1; mode=block"; + ssl_stapling on; + ssl_stapling_verify on; + resolver 8.8.8.8 8.8.4.4 valid=300s; + resolver_timeout 5s; + + client_max_body_size 90M; + client_body_timeout 600s; + + location / { + add_header Access-Control-Allow-Origin *; + root /path/to/your/uploads; + try_files $uri @proxy; + } + + location @proxy { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + proxy_pass http://frontend; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_redirect off; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location /api { + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Host $http_host; + proxy_set_header X-NginX-Proxy true; + proxy_pass http://backendbeta; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_redirect off; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` -- cgit v1.2.3 From 36b11f00273a53aa5bb392a4363c48ffe0b45e01 Mon Sep 17 00:00:00 2001 From: Kana Date: Fri, 1 Mar 2019 00:40:13 +0900 Subject: Update nginx.md --- docs/nginx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/nginx.md b/docs/nginx.md index 436dcfb..592e8f6 100644 --- a/docs/nginx.md +++ b/docs/nginx.md @@ -80,7 +80,7 @@ server { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; - proxy_pass http://backendbeta; + proxy_pass http://backend; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; -- cgit v1.2.3 From e8f70f5170fc0aefb2f3eeed4afe137ba1ff5aa9 Mon Sep 17 00:00:00 2001 From: Kana Date: Fri, 1 Mar 2019 14:12:44 +0900 Subject: Create pm2.md --- docs/pm2.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/pm2.md (limited to 'docs') diff --git a/docs/pm2.md b/docs/pm2.md new file mode 100644 index 0000000..53fc5b0 --- /dev/null +++ b/docs/pm2.md @@ -0,0 +1,11 @@ +## Setting up PM2 to run lolisafe + +The best way to keep the service running in case of crashes or unexpected issues is to attach the process to PM2 and forget about it. This also gives you the ability to dettach the process from your terminal and run it in the background, which is a must since lolisafe now comes in 2 separate processes. +The recommended way to set it up is to run the commands below, one for the API and the other for the site. + +``` +pm2 start npm --name "lolisafe.api" -- run api +pm2 start npm --name "lolisafe.site" -- run site +``` + +All set, if you want to check the logs you can `pm2 logs lolisafe.api` or similar. -- cgit v1.2.3 From 390eeb9b0718f6736600cbfa47d3d2983cde01d9 Mon Sep 17 00:00:00 2001 From: Pitu Date: Tue, 12 Mar 2019 04:45:47 +0000 Subject: Automated pm2 process spawn --- docs/pm2.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/pm2.md b/docs/pm2.md index 53fc5b0..ac942fc 100644 --- a/docs/pm2.md +++ b/docs/pm2.md @@ -4,8 +4,8 @@ The best way to keep the service running in case of crashes or unexpected issues The recommended way to set it up is to run the commands below, one for the API and the other for the site. ``` -pm2 start npm --name "lolisafe.api" -- run api -pm2 start npm --name "lolisafe.site" -- run site +pm2 start npm --name "lolisafe-api" -- run api +pm2 start npm --name "lolisafe-site" -- run site ``` -All set, if you want to check the logs you can `pm2 logs lolisafe.api` or similar. +All set, if you want to check the logs you can `pm2 logs lolisafe-api` or similar. -- cgit v1.2.3 From 5df8485c5e81d16a3b1a4195b629dbd72d11dfb5 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sun, 10 May 2020 21:51:49 +0900 Subject: updated nginx sample config --- docs/nginx.md | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) (limited to 'docs') diff --git a/docs/nginx.md b/docs/nginx.md index 592e8f6..48aaa26 100644 --- a/docs/nginx.md +++ b/docs/nginx.md @@ -1,9 +1,8 @@ ### Nginx config for SSL -Make sure that: -- `backend` and `frontend` ports match your wizard config +Make sure that: +- `backend` port matches your wizard config - `client_max_body_size` matches your wizard config - You replace `your.domain` where pertinent -- You point the `root` folder to your uploads folder ```nginx @@ -11,10 +10,6 @@ upstream backend { server 127.0.0.1:5000; } -upstream frontend { - server 127.0.0.1:5005; -} - server { listen 80; listen [::]:80; @@ -55,27 +50,7 @@ server { client_max_body_size 90M; client_body_timeout 600s; - location / { - add_header Access-Control-Allow-Origin *; - root /path/to/your/uploads; - try_files $uri @proxy; - } - - location @proxy { - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Host $http_host; - proxy_set_header X-NginX-Proxy true; - proxy_pass http://frontend; - proxy_redirect off; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_redirect off; - proxy_set_header X-Forwarded-Proto $scheme; - } - - location /api { + location /api { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; -- cgit v1.2.3 From e0c35a7d7402ad6915a89bf8c167508eac5046be Mon Sep 17 00:00:00 2001 From: Pitu Date: Mon, 11 May 2020 01:07:44 +0900 Subject: fix: nginx config --- docs/nginx.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/nginx.md b/docs/nginx.md index 48aaa26..bdf1112 100644 --- a/docs/nginx.md +++ b/docs/nginx.md @@ -50,7 +50,7 @@ server { client_max_body_size 90M; client_body_timeout 600s; - location /api { + location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; -- cgit v1.2.3 From 2d06d918a154c15196ca92fb8f7873ca3c797f00 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 18 Jul 2020 02:21:31 +0900 Subject: Timeout, package and docs cleanup --- docs/migrating.md | 14 ++++++++++++++ docs/pm2.md | 11 ----------- 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 docs/migrating.md delete mode 100644 docs/pm2.md (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md new file mode 100644 index 0000000..a7d9eb7 --- /dev/null +++ b/docs/migrating.md @@ -0,0 +1,14 @@ +### Migrate from v3 to v4 +This version introduces a few breaking changes and updating requires some manual work. +For starters we recommend cloning the new version somewhere else instead of `git pull` on your v3 version. + +- After cloning move your `uploads` folder from the v3 folder to the new v4 folder. +- Then copy your `database/db` file from your v3 folder to the root of your v4 folder. +- You then need to run `yarn setup` or `npm start setup` from the v4 folder and finish the setup process. +- Once that's done you need to manually run `node src/api/databaseMigration.js` from the root folder of v4 +- After the migration finishes, the last step is to update your nginx config with the [newly provided script](./nginx.md) +- Restart nginx with `sudo nginx -s reload` +- And lastly start your lolisafe instance with `pm2 start pm2.json` + +### Known issues of migrating +- The thumbnails in the album view don't show up. That's because they don't exist, this will get solved as you upload new stuff so the newly uploaded files get the proper thumbnail created. diff --git a/docs/pm2.md b/docs/pm2.md deleted file mode 100644 index ac942fc..0000000 --- a/docs/pm2.md +++ /dev/null @@ -1,11 +0,0 @@ -## Setting up PM2 to run lolisafe - -The best way to keep the service running in case of crashes or unexpected issues is to attach the process to PM2 and forget about it. This also gives you the ability to dettach the process from your terminal and run it in the background, which is a must since lolisafe now comes in 2 separate processes. -The recommended way to set it up is to run the commands below, one for the API and the other for the site. - -``` -pm2 start npm --name "lolisafe-api" -- run api -pm2 start npm --name "lolisafe-site" -- run site -``` - -All set, if you want to check the logs you can `pm2 logs lolisafe-api` or similar. -- cgit v1.2.3 From 4dafc79cb74d901bb9454f78277298f020543bb5 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 18 Jul 2020 02:55:05 +0900 Subject: fix authorization --- docs/migrating.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index a7d9eb7..796d422 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -12,3 +12,7 @@ For starters we recommend cloning the new version somewhere else instead of `git ### Known issues of migrating - The thumbnails in the album view don't show up. That's because they don't exist, this will get solved as you upload new stuff so the newly uploaded files get the proper thumbnail created. + +### Breaking changes +- You need to update the lolisafe browser if you use it, since it won't work with the new version automatically. Instead of pasting your token into it, you need to log in to lolisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. +- To upload a file to an album directly users used to use the endpoint `/api/upload/${albumId}`. This is no longer the case. To upload directly to an album now it's necessary to pass a header called `albumid` with an integer as the value of the album to which you want to upload a file to. -- cgit v1.2.3 From aea442a9569a91b9610545978131f8dec0ab4ff3 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 18 Jul 2020 16:45:01 +0900 Subject: Update migration instructions --- docs/migrating.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index 796d422..6421391 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -5,14 +5,16 @@ For starters we recommend cloning the new version somewhere else instead of `git - After cloning move your `uploads` folder from the v3 folder to the new v4 folder. - Then copy your `database/db` file from your v3 folder to the root of your v4 folder. - You then need to run `yarn setup` or `npm start setup` from the v4 folder and finish the setup process. -- Once that's done you need to manually run `node src/api/databaseMigration.js` from the root folder of v4 -- After the migration finishes, the last step is to update your nginx config with the [newly provided script](./nginx.md) -- Restart nginx with `sudo nginx -s reload` -- And lastly start your lolisafe instance with `pm2 start pm2.json` +- Once that's done you need to manually run `node src/api/databaseMigration.js` from the root folder of v4. +- This will migrate the v3 database to v4 and regenerate every single thumbnail to acomodate the new format. +- After the migration finishes, the last step is to update your nginx config with the [newly provided script](./nginx.md). +- Restart nginx with `sudo nginx -s reload`. +- And lastly start your lolisafe instance with `pm2 start pm2.json`. ### Known issues of migrating - The thumbnails in the album view don't show up. That's because they don't exist, this will get solved as you upload new stuff so the newly uploaded files get the proper thumbnail created. ### Breaking changes -- You need to update the lolisafe browser if you use it, since it won't work with the new version automatically. Instead of pasting your token into it, you need to log in to lolisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. -- To upload a file to an album directly users used to use the endpoint `/api/upload/${albumId}`. This is no longer the case. To upload directly to an album now it's necessary to pass a header called `albumid` with an integer as the value of the album to which you want to upload a file to. +- If you are using the lolisafe extension from one of the stores, the new version has been submitted and could take up to a week to get approved. In the meantime you can load the unpacked extension by cloning [this repo](https://github.com/WeebDev/loli-safe-extension). +- The lolisafe browser extension needs your new token. Instead of pasting your jwt token into it like before, you need to log in to lolisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. +- To upload a file to an album directly users used to use the endpoint `/api/upload/${albumId}`. This is no longer the case. To upload directly to an album now it's necessary to pass a header called `albumid` with an integer as the value of the album to which you want to upload the file to. -- cgit v1.2.3 From 0b6867f1b1f490320126368304f6aaaca6807422 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 18 Jul 2020 16:45:51 +0900 Subject: update guide --- docs/migrating.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index 6421391..ffd61ab 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -6,7 +6,7 @@ For starters we recommend cloning the new version somewhere else instead of `git - Then copy your `database/db` file from your v3 folder to the root of your v4 folder. - You then need to run `yarn setup` or `npm start setup` from the v4 folder and finish the setup process. - Once that's done you need to manually run `node src/api/databaseMigration.js` from the root folder of v4. -- This will migrate the v3 database to v4 and regenerate every single thumbnail to acomodate the new format. +- This will migrate the v3 database to v4 and regenerate every single thumbnail in webp to save bandwidth. - After the migration finishes, the last step is to update your nginx config with the [newly provided script](./nginx.md). - Restart nginx with `sudo nginx -s reload`. - And lastly start your lolisafe instance with `pm2 start pm2.json`. -- cgit v1.2.3 From 37a5a8cce220a84ca151a1041b9aeaab2855f771 Mon Sep 17 00:00:00 2001 From: Pitu Date: Sat, 18 Jul 2020 16:50:39 +0900 Subject: Upgrade migration doc --- docs/migrating.md | 3 --- 1 file changed, 3 deletions(-) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index ffd61ab..9166581 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -11,9 +11,6 @@ For starters we recommend cloning the new version somewhere else instead of `git - Restart nginx with `sudo nginx -s reload`. - And lastly start your lolisafe instance with `pm2 start pm2.json`. -### Known issues of migrating -- The thumbnails in the album view don't show up. That's because they don't exist, this will get solved as you upload new stuff so the newly uploaded files get the proper thumbnail created. - ### Breaking changes - If you are using the lolisafe extension from one of the stores, the new version has been submitted and could take up to a week to get approved. In the meantime you can load the unpacked extension by cloning [this repo](https://github.com/WeebDev/loli-safe-extension). - The lolisafe browser extension needs your new token. Instead of pasting your jwt token into it like before, you need to log in to lolisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. -- cgit v1.2.3 From ec2f9e0d989792c1760b48e063467cf6e59c580a Mon Sep 17 00:00:00 2001 From: Pitu Date: Fri, 25 Dec 2020 20:45:22 +0900 Subject: Rebrand --- docs/migrating.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index 9166581..c622dff 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -9,9 +9,9 @@ For starters we recommend cloning the new version somewhere else instead of `git - This will migrate the v3 database to v4 and regenerate every single thumbnail in webp to save bandwidth. - After the migration finishes, the last step is to update your nginx config with the [newly provided script](./nginx.md). - Restart nginx with `sudo nginx -s reload`. -- And lastly start your lolisafe instance with `pm2 start pm2.json`. +- And lastly start your chibisafe instance with `pm2 start pm2.json`. ### Breaking changes -- If you are using the lolisafe extension from one of the stores, the new version has been submitted and could take up to a week to get approved. In the meantime you can load the unpacked extension by cloning [this repo](https://github.com/WeebDev/loli-safe-extension). -- The lolisafe browser extension needs your new token. Instead of pasting your jwt token into it like before, you need to log in to lolisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. +- If you are using the chibisafe extension from one of the stores, the new version has been submitted and could take up to a week to get approved. In the meantime you can load the unpacked extension by cloning [this repo](https://github.com/WeebDev/chibisafe-extension). +- The chibisafe browser extension needs your new token. Instead of pasting your jwt token into it like before, you need to log in to chibisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. - To upload a file to an album directly users used to use the endpoint `/api/upload/${albumId}`. This is no longer the case. To upload directly to an album now it's necessary to pass a header called `albumid` with an integer as the value of the album to which you want to upload the file to. -- cgit v1.2.3 From 4ff204115c92776b6277918925c4404ddcf55f72 Mon Sep 17 00:00:00 2001 From: Pitu Date: Mon, 4 Jan 2021 00:51:58 +0900 Subject: chore: update docs --- docs/migrating.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs') diff --git a/docs/migrating.md b/docs/migrating.md index c622dff..f461c98 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -12,6 +12,6 @@ For starters we recommend cloning the new version somewhere else instead of `git - And lastly start your chibisafe instance with `pm2 start pm2.json`. ### Breaking changes -- If you are using the chibisafe extension from one of the stores, the new version has been submitted and could take up to a week to get approved. In the meantime you can load the unpacked extension by cloning [this repo](https://github.com/WeebDev/chibisafe-extension). +- If you are using the chibisafe extension from one of the stores, the new version has been submitted already. You can also load the unpacked extension by cloning [this repo](https://github.com/WeebDev/chibisafe-extension). - The chibisafe browser extension needs your new token. Instead of pasting your jwt token into it like before, you need to log in to chibisafe, go to your user settings and generate an `API KEY`, which you will use to access the service from 3rd party apps like the browser extension, ShareX, etc. - To upload a file to an album directly users used to use the endpoint `/api/upload/${albumId}`. This is no longer the case. To upload directly to an album now it's necessary to pass a header called `albumid` with an integer as the value of the album to which you want to upload the file to. -- cgit v1.2.3