Rabbit-Company / Passky-Server

Server for Passky (password manager)
https://passky.org
GNU General Public License v3.0
166 stars 22 forks source link

Unable to update #20

Open virgo77 opened 1 year ago

virgo77 commented 1 year ago

Describe the bug Trying to update to v8.0.0 and I get an error:

#> sudo docker-compose pull
ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

To Reproduce Just connected as root (or user with sudo rights)

Desktop (please complete the following information):

Additional context Passky server is on http instead https. I don't know how to switch to https. Is this the origin issue?

zigazajc007 commented 1 year ago

Hello,

When you execute sudo docker-compose pull command you need to be located in the same directory as your docker-compose.yml file is located. So for example if you have installed Passky inside /home/root/passky directory you need to first cd into this directory (cd /home/root/passky) and then you can execute sudo docker-compose pull command to download the new image.

Personally I would not recommend you to upgrade from v7.1.0 to v8.0.0 as this is really big update and contain a lot of breaking changes. So a lot easier option would be to:

  1. Export all your passwords ("Export" button under Passky) image
  2. Store exported file somewhere safe
  3. Stop and remove current docker containers (sudo docker-compose down)
  4. Remove current Passky images (sudo docker rmi rabbitcompany/passky-database rabbitcompany/passky-api)
  5. Remove current Passky database (sudo rm -rf /passky/)

and now you can start with fresh installation:

wget https://github.com/Rabbit-Company/Passky-Server/releases/latest/download/passky-server.tar.xz
tar -xf passky-server.tar.xz
cd passky-server
# Makes installers executable
chmod +x installer.sh installerGUI.sh
# Start the GUI installer
./installerGUI.sh
# After you complete with installer you can create containers with below command
sudo docker-compose up -d

After the fresh installation you can create new account and import your passwords back to the password manager.

zigazajc007 commented 1 year ago

Passky server is on http instead https. I don't know how to switch to https. Is this the origin issue?

This is correct Passky will by default assign on port 8080. Normally users host multiple applications on the same server, that's why we use a proxy manager. One of the easiest proxy manager to use is Nginx Proxy Manager.

How to install Nginx Proxy Manager:

  1. Create new directory and navigate to it (mkdir nginx && cd nginx)
  2. Create new file called docker-compose.yml (nano docker-compose.yml)
  3. Paste this configuration:
    version: '3'
    services:
    app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
  4. Now you can start the Nginx Proxy Manager with sudo docker-compose up -d
  5. To access admin panel go to your browser and use http://IPOfYourServer:81
  6. Enter default username and password:
    Email: admin@example.com
    Password: changeme
  7. Now you can create new proxy with your domain that will redirect traffic to port 8080 and also auto install SSL certificate.

Note that I would use proxy manager for Passky only if you will open access to the public. For home use only you do not need it.

I can make a video on how to install Passky, so it would be a lot easier for beginners.

virgo77 commented 1 year ago

Hi, Thanks for your reply. I tried to update to v8 following your instructions but it didn't work. I had errors while trying to uninstall the v7 like above, as the system was unable to find any suitable files... So I totally reinstalled Debian and Docker and now I'm on v8 ^^ Note that I use PASSKY on a VM. So now, I use snapshots. If it bugs, I just have to roll back ^^

However, I just got stranges things after my new fresh install:

Last question: why the setup do not accept special characters when configuring admin/root/passky users accounts? It doesn't seem to be really secure to just have letters and numbers, especially if the server is exposed on the Internet. Maybe the DB char format?

Don't forget: good job and good work ;)

Thanks a lot

V.

zigazajc007 commented 1 year ago

in the new v8 client app, I can't login with the admin account. I got an error telling me that the password is incorrect. But I'm sure about the password I typed in the config process, as I didn't use special characters (only upper/lowercase and numbers).

Admin account does not exists on a Client. You can only log in with admin account on your website http://localip:8080 For example you can create you account in the client and with the admin panel you can manage those accounts.

Is there a way to just change the admin password and not to reconfigure the entire server?

Yes, first make sure you are located in the passky-server directory (Where docker-compose.yml and .env files are located), edit .env file (nano .env) and now you can just execute sudo docker-compose up -d command. This command will rebuild your containers if .env file has been changed.

Last question: why the setup do not accept special characters when configuring admin/root/passky users accounts? It doesn't seem to be really secure to just have letters and numbers, especially if the server is exposed on the Internet. Maybe the DB char format?

You can use special characters in .env file, but you would need to wrap them with ' or ". Example:

PASSWORD='!$%&$%)=('

Note that not every character would work as some would need to be escaped. That's why I rather say it's not supported as a lot of people have problems with this. I would suggest you to rather use Passky to auto generate 30 character long password that contain letters and numbers. This should be unbreakable.

the server is working. If I connect with Firefox/Chrome/Edge to my local server (http://localip:8080/) I can get the page telling me that the server is correctly installed. But, if I click on the 'server' tab, or 'log in' button, it's not working. No 'switch' to the corresponding page

v8 version is using Redis for a Session manager. So if you can't navigate thru the page, the reason can be that Redis isn't configured correctly or it doesn't work.

virgo77 commented 1 year ago

Thanks a lot for your answers

I forgot a strange thing, sorry.

If you have some informations about it :)

zigazajc007 commented 1 year ago

If I create a new 'password' credential, and if I copy/paste the password from a text file to PASSKY, after saving the new credential, the password is getting an excess of character. Some of my password are very long and are about 50/60 characters. So, if I copy/paste one of my long password, like 50 characters, and if I copy this new one from passky, my password is 1 more character long. All the first 50 characters are OK but the 51 character is totally random. And I don't know why ^^

I'm trying to replicate this issue, but it always returns me the same password even with 78 character long. image

Do you have a discord for easier communication?

virgo77 commented 1 year ago

Admin account does not exists on a Client. You can only log in with admin account on your website http://localip:8080 For example you can create you account in the client and with the admin panel you can manage those accounts.

v8 version is using Redis for a Session manager. So if you can't navigate thru the page, the reason can be that Redis isn't configured correctly or it doesn't work.

I just installed redis following the official website, then rebooted the VM and... not working. Should I reinstall from scratch?

About one of my password:

very strange ^^

Some of my passwords are using 'high' characters, like: YÑáµjÚ^TŠ4Lm‹s+þbæÿˆª And they work well inside keepass, 1Password, etc. So is it a DB issue?

zigazajc007 commented 1 year ago

It can be a DB issue. On my end I'm getting the same output.

image

I will go to sleep soon, but I can check in 8 hours if it's the DB issue. Note that Passky is inside docker containers so those are similar as VPS, but for "applications". So Passky should be working on all systems the same with a docker.

zigazajc007 commented 1 year ago

You can check the logs with sudo docker logs passky-api and sudo docker logs passky-database

Note that passky-api can contain some sensitive data.

zigazajc007 commented 1 year ago

I would really suggest you to learn basics of docker as it would make it a lot easier for you. I can also make a short video tomorrow and explain you everything in it.

virgo77 commented 1 year ago

sounds good :) good night!

zigazajc007 commented 1 year ago

Youtube is currently processing HD quality and it should took an hour.

zigazajc007 commented 1 year ago

It was sooner than expected.

I hope you will understand as my English is really bad. So this video is also delisted and can only be accessed with the link.

https://www.youtube.com/watch?v=XxcOnHLDqd0

zigazajc007 commented 1 year ago

I have decided that I will also allow Admin Panel without secure SSL connection as some self-hosters that would only have it deployed in a home network won't need it at all.

virgo77 commented 1 year ago

Hi! I really thank you for the video. Very instructive!

And... I think I know what's wrong with the password and the excess of character! Look at this pic: image

You will see an antislash, but when I copied it here on this issue, this antislash has vanished. So I tried with the antislash in PASSKY and I got an new character at the end of the password. But, if i delete this antislash, the problem disappeared and the password is working well. So I invite you to try the password i gave you yesterday, and add the antislash. Create a new password item and compare the original password with the one from PASSKY. I'm sure you will get a new character at the end.

I tried an another password which is only uppercase/lowercase/number. Inside this password, I got a single slash. No other special character. I got the same pb. I deleted the slash from the password and it's working fine.

I don't know what is "bugged": the single quote before the antislash? The antislash? The slash? Maybe the DB think it is a "code string". Can you check? ^^

I appreciate your availability :)

Thanks a lot

zigazajc007 commented 1 year ago

Hello,

Backslash is a character used for escaping in the strings. For example:

\n would be a new line.
\\ would be a \
\" would be a "
...

It's a lot more likely that backslash gets lost before it's even send to the Passky Server for the storage.

Thank you for reporting this issue. I will fix it today.

Edited: That's also a reason why I didn't include it in a password generator. Those characters should be avoid on the internet as they have their own purpose and usually break things.

Not escaping those characters can lead to a security vulnerabilities. So we need to be really careful if we want to add support for . (As you can see even Github does escape it, so it isn't shown)

CMB244 commented 1 year ago

sorry, this is just for testing purpose