Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
You can try setting a different password, maybe it's got a character in it that messes with things. Or try URL-encoding the password in
lemmy.hjson
.You can also use a PostgreSQL client like the
psql
command line tool or a full fat DB client like DBeaver and try connecting to it and see if it accepts your password or not.Example with just Docker and the PostgreSQL container you're already running:
It'll at least give you pointers as to where the issue lies: on the database side or lemmy's side.
Thank you for enlightening me on the
-W
option in psql. I have successfully logged in using the expected password for lemmy. This points to something with the connection string. According to the error log, the connection string being used is:As far as I can tell, the percent encoding is correct. Any ideas how to troubleshoot this further?
edit: it just occurred to me that my container name is
lemmy_postgres_1
, notpostgres
as was entered in mylemmy.hjson
file. Let's see if changing that will work...edit2: no, that had no effect. I'm getting the authentication error for user lemmy on both the lemmy container and the postgres container. :(
Yeah the name you want for the database host is
postgres
, or whatever the container is named in thedocker-compose.yml
. The full name of what the container ends up being named on the host (usually,lemmy-postgres-1
or something) doesn't matter, it's its internal name that's important.That you get a password error specifically also suggests it is communicating with it properly otherwise the error would be connection refused or connection timeout or something similar.
Maybe try a very simple password temporarily like
test
, rebuild the postgres container/delete the volumes and see if it works. If it still doesn't work you have more troubleshooting to do, if it works then you know the password is tripping something somewhere.I was curious about this, and it turns out both work. I tested by pinging both
postgres
andlemmy_postgres_1
, and both responded with the same IP address. Good to know, but I did go ahead and change it back topostgres
I did this, and I'm still getting the same error, so obviously something is wrong.
At this point it makes me wonder if your changes are making it to the containers. If you change the username for the db both for postgres and lemmy, do you get a different error about the new username? Maybe lemmy's just using the default config and not reading your hjson file, that's a good way to test that.
Otherwise I'm at a loss, it should be pretty simple.
I tried this... updated the user to
lemmy1
. The error message does indeed change to reflect the new user.Super frustrating!
I learned something interesting in doing some more testing...
Using the
-W
option does indeed prompt for a password, but it accepts any value entered at the password prompt. In order to actually authenticate with a password when usingpsql
, you must modify thepg_hba.conf
file to usescram-sha-256
as the method for typelocal
.When I do this, I am unable to authenticate (both while using my actual password, and also while using a password of "test".
And then I figured out the problem.
In my
docker-compose.yml
, I had put single quotes around my postgres password, thinking this would be safe per my understanding of this question. However, just to check, I tried logging in topsql
using the password'test'
. Sure enough, it worked.I found another stack exchange with some different advice on strings in yaml: https://stackoverflow.com/questions/53082932/yaml-docker-compose-spaces-quotes
So, I tried my password again, without the single quotes... and it worked.
Perhaps this will help somebody beating their head against the wall in the future.