artifacts/readme/start-up-server.md
[//]: #@corifeus-header
# 📡 P3X Redis UI is a very functional handy database GUI and works in your pocket on the responsive web or as a desktop app
[//]: #@corifeus-header:end
# Start up with a server
Config skeleton @ [p3xrs.json](../../p3xrs.json)
```bash
sudo npm i -g p3x-redis-ui
# help info
p3x-redis --help
# help info detailed
Usage: p3x-redis [options]
Options:
-V, --version output the version number
-c, --config [config] Set the p3xr.json p3x-redis-ui-server configuration, see more help in https://github.com/patrikx3/redis-ui-server
-r, --readonly-connections Set the connections to be readonly, no adding, saving or delete a connection
-n, --connections-file-name [filename] Set the connections file name, overrides default .p3xrs-conns.json
-h, --help output usage information
# startup with default settings on 7843 port
p3x-redis
# if you want to disable changing of connections
p3x-redis --readonly-connections
# or
p3x-redis -r
# or
p3x-redis --config /home/p3x-redis-ui/p3xrs.json
# mix
p3x-redis --config /home/p3x-redis-ui/p3xrs.json --readonly-connections
```
# Create a Linux SystemD service
```bash
adduser --disabled-password p3x-redis-ui
touch /etc/systemd/system/p3x-redis-ui.service
nano /etc/systemd/system/p3x-redis-ui.service
```
Place this file with this content:
```text
[Unit]
Description=p3x-redis
After=network.target
[Service]
Type=simple
User=p3x-redis-ui
WorkingDirectory=/home/p3x-redis-ui
# or if you want readonly connections as it is public
#ExecStart=/usr/bin/p3x-redis --readonly-connections
#ExecStart=/usr/bin/p3x-redis --readonly-connections --config /home/p3x-redis-ui/p3xrs.json
ExecStart=/usr/bin/p3x-redis
Restart=on-abort
[Install]
WantedBy=multi-user.target
```
Finally:
```bash
systemctl daemon-reload
systemctl enable p3x-redis-ui
service p3x-redis-ui start
```
The server is loading at:
[http://localhost:7843](http://localhost:7843)
The best is, if you have an NGINX with a valid, secure HTTPS certificate for example Let's Encrypt and then use it as a proxy, for example my own:
```text
/etc/nginx/sites-enabled/p3x.redis.patrikx3.com
```
For free SSL certificate, I use `acme.sh`:
https://github.com/Neilpang/acme.sh
Config:
```text
server {
listen 80 ;
listen [::]:80 ;
server_name p3x.redis.patrikx3.com;
error_log /var/log/nginx/p3x.redis.patrikx3.com-error.log;
access_log /var/log/nginx/p3x.redis.patrikx3.com-access.log combined;
location ~ /.well-known {
auth_basic off;
auth_pam off;
allow all;
# make sure this path existing and has read for nginx
root /var/www/acme-challenge;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
return 301 https://$host$request_uri;
}
server {
server_name p3x.redis.patrikx3.com;
error_log /var/log/nginx/p3x.redis.patrikx3.com-error.log;
access_log /var/log/nginx/p3x.redis.patrikx3.com-access.log combined;
location ~ /.well-known {
auth_basic off;
auth_pam off;
allow all;
root /var/www/acme-challenge;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
ssl_certificate /home/p3x-redis-ui/acme/ssl/p3x.redis.patrikx3.com/fullchain.cer;
ssl_certificate_key /home/p3x-redis-ui/acme/ssl//patrikx3.com/patrikx3.com.key;
location / {
proxy_pass "http://127.0.0.1:7843";
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl on;
add_header Strict-Transport-Security "max-age=31536000; " always;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
}
```
[//]: #@corifeus-footer
---
## Support Our Open-Source Project ❤️
If you appreciate our work, consider starring this repository or making a donation to support server maintenance and ongoing development. Your support means the world to us—thank you!
### Server Availability
Our server may occasionally be down, but please be patient. Typically, it will be back online within 15-30 minutes. We appreciate your understanding.
### About My Domains
All my domains, including [patrikx3.com](https://patrikx3.com) and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional.
### Versioning Policy
**Version Structure:** We follow a Major.Minor.Patch versioning scheme:
- **Major:** Corresponds to the current year.
- **Minor:** Set as 4 for releases from January to June, and 10 for July to December.
- **Patch:** Incremental, updated with each build.
**Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
---
[**P3X-REDIS-UI**](https://corifeus.com/redis-ui) Build v2024.4.301
[![NPM](https://img.shields.io/npm/v/p3x-redis-ui.svg)](https://www.npmjs.com/package/p3x-redis-ui) [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software)
[//]: #@corifeus-footer:end