Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Instructions · JSH32/Backpack Wiki · GitHub
Skip to content

Instructions

Riku edited this page Mar 11, 2020 · 3 revisions

Nekos.cafe Install guide

Requirements:

  • yarn
  • mongo
  • nginx (optional)

Basic setup

  1. Clone the repository with git clone https://github.com/Riku32/nekos.cafe.git
  2. Run the command yarn, this will install all the required packages for nekos.cafe

Configuration

The default .env.example file should look like this

MONGOURL=mongodb://database:port
DBNAME=dbname
UPLOAD_DIR=./uploads/
UPLOADS_SERVE=true
URL=http://localhost:8080/
INVITEONLY=false
PORT=8080
FILELENGTH=7
MAXUPLOADSIZE=100
ADMINREGISTER=false
ADMINKEY=supersecurekey
  1. Copy/rename this file to .env
  2. Put your mongo connection string in MONGOURL
  3. Put your database name within mongo at DBNAME
  4. Put your upload directory at UPLOAD_DIR
  5. URL is where your file serve domain will be. If you aren't using a custom domain to serve files just put your domain name here. Make sure it ends with a /
  6. UPLOADS_SERVE is for serving your upload directory through the builtin webserver
  7. INVITEONLY is true if you want the instance to be invite-only
  8. PORT is the port that the server will be listening on
  9. FILELENGTH is the length of randomly generated filenames that are uploaded
  10. MAXUPLOADSIZE is the maximum upload filesize, this is in MB
  11. ADMINREGISTER should always be false unless you are creating an admin user
  12. ADMINKEY while creating an admin user this is the secret key needed to signup as admin

Admin setup

  1. Set ADMINREGISTER in .env to true and set ADMINKEY to something secure
  2. Run node app.js to start the server
  3. Navigate to http://yourdomain.com/admin/signup
  4. Put your username and password into the two fields, put the ADMINKEY you configured in .env as the last field. This should create your admin account.
  5. Shut down the server by pressing CTRL+C in the console.
  6. Set ADMINREGISTER to false

After this you should be good to go, just create an account regularly at http://yourdomain.com/signup and continue, if you need to create a registration key for friends or yourself visit http://yourdomain.com/admin and you should have access to the admin panel to create regkeys.


NGINX (optional)

Follow these steps if you want to use SSL or need to reverse proxy the application. This will not tell you how to install nginx, research that elsewhere. This guide assumes you are using ubuntu as your operating system.

  1. Go to /etc/nginx/sites-available
  2. Create a file here prefferably called nekos
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/ssl/certs/server.pem;
ssl_certificate_key /etc/ssl/certs/server.key;
location / {
proxy_pass http://localhost:8080;
}
}

This should be the content of the file if you did not change the port settings in .env Change server_name to your domain and set the ssl options to your certificate. If you do not want to use ssl then follow the additional instructions below

  1. Change 443 ssl; to 80;
  2. Remove ssl_certificate and ssl_certificate_key. Once you are sure that your config is complete run the two commands below ln -s /etc/nginx/sites-available/nekos /etc/nginx/sites-enabled/nekossystemctl restart nginx

This is activating the config we just made and restarting nginx


Clone this wiki locally