Psono is a secure password manager that you can host on your own server. This tutorial will show you how to install Psono on your Arch Linux system.
Before we begin, make sure you have these prerequisites:
Psono requires Python 3.5 or higher and some additional dependencies. To install them, open a terminal and run the following commands:
sudo pacman -S python
sudo pacman -S python-pip
sudo pacman -S python-setuptools
sudo pacman -S python-gobject
sudo pacman -S python-markdown
sudo pacman -S python-cryptography
sudo pacman -S python-requests
sudo pacman -S python-pillow
To install Psono, follow these steps:
sudo pacman -S git
git clone https://github.com/psono/psono-server.git
Navigate to the Psono directory and install the server:
cd psono-server
sudo python setup.py install
Create a config file:
sudo nano /etc/psono.cfg
In the file, add these lines:
LOGGING_DIR = '/var/log/psono'
DATABASE_NAME = '/var/lib/psono/database.sqlite3'
FILE_STORAGE = '/var/lib/psono/file_storage'
UPLOAD_STORAGE = '/var/lib/psono/upload_storage'
UPLOAD_TMP = '/var/tmp/psono_upload'
SECRET_KEY = 'my_super_secret_key'
ALLOWED_HOSTS = ['your.domain.com']
Make sure to replace your.domain.com
with your actual domain or subdomain.
Initialize the database:
sudo psono dbupgrade
Create a systemd unit:
sudo nano /usr/lib/systemd/system/psono.service
In the file, add these lines:
[Unit]
Description=Psono password manager
[Service]
User=root
Group=root
WorkingDirectory=/usr/share/psono
Environment="PSONO_SETTINGS_FILE=/etc/psono.cfg"
ExecStart=/usr/bin/psono runserver
Restart=always
[Install]
WantedBy=multi-user.target
Start and enable the service:
sudo systemctl start psono.service
sudo systemctl enable psono.service
Congratulations! You now have Psono installed on your Arch Linux system. You can access it using your web browser at https://your.domain.com
.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!