Ver Fonte

Merge pull request #715 from decipher2k/main

Added installation instructions for public hosting to readme
Nariman Jelveh há 6 meses atrás
pai
commit
3f34301fc5
2 ficheiros alterados com 45 adições e 2 exclusões
  1. 39 0
      README.md
  2. 6 2
      src/backend/src/routers/signup.js

+ 39 - 0
README.md

@@ -99,6 +99,45 @@ For detailed guides on self-hosting Puter, including configuration options and b
 
 <br/>
 
+### 🌎 Installation on public server
+Subdomain is puter. Replace "domain.com" with your domain name.
+
+#### -Create DNS entries for puter.domain.com and api.puter.domain.com, both pointing to the same IP.
+
+#### -Create apache domain configs for puter.domain.com and api.puter.domain.com and add reverse proxy entries for both subdomains
+```$ a2enmod proxy```
+```$ a2enmod proxy_http```
+
+
+##### /etc/apache/sites-enabled/--configfile---
+```
+ProxyPass / http://localhost:4100/
+ProxyPassReverse / http://localhost:4100/
+```
+#### -Edit ./src/backend/src/config.js
+Add after ```let config = {};```
+```
+config.api_base_url = 'https://api.puter.domain.com';
+config.origin='https://puter.domain.com';
+config.http_port=443;´
+config.pub_port=443;
+config.protocol='https';
+```
+
+#### -Edit ./node_modules/@heyputer/backend/src/services/WebServerService.js and  ./src/backend/src/services/WebServerService.js
+Search for
+```if (allowedDomains.some(allowedDomain => hostName ===```
+and change the line to
+```if (allowedDomains.some(allowedDomain => hostName === "puter.domain.com" || hostName.endsWith('.' + allowedDomain))) {```
+
+#### -Edit ./volatile/config/config.json
+Change ```"domain": "puter.localhost"``` to ```"domain": "puter.domain.com"```
+
+#### -Run sed to replace the domain in all remaining files
+``` grep -rl "puter.localhost:4100" . | xargs sed -i 's/puter.localhost:4001/puter.domain.com/g' ```
+<br>
+<br>
+
 ### ☁️ Puter.com
 
 Puter is available as a hosted service at [**puter.com**](https://puter.com).

+ 6 - 2
src/backend/src/routers/signup.js

@@ -66,6 +66,10 @@ module.exports = eggspress(['/signup'], {
         body: req.body,
     });
 
+    if( config.registration_closed == true ) {
+        return res.status(403).send('Registration is closed.');
+    }
+        
     // check bot trap, if `p102xyzname` is anything but an empty string it means
     // that a bot has filled the form
     // doesn't apply to temp users
@@ -228,7 +232,7 @@ module.exports = eggspress(['/signup'], {
             'UPDATE `user` SET `last_activity_ts` = now() WHERE id=? LIMIT 1',
             [insert_res.insertId]
         );
-        
+
         // TODO: cache group id
         const svc_group = req.services.get('group');
         await svc_group.add_users({
@@ -348,5 +352,5 @@ module.exports = eggspress(['/signup'], {
             taskbar_items: await get_taskbar_items(user),
             referral_code,
         }
-    })
+    })    
 });