Hi all,
I have an issue where I’m trying to setup my instance, and get as far as being able to register as an admin and login when using localhost, but not on my example domain.
When accessing my instance at https://lemmy.mydomain.com, for all appearances it appears to but up and running (I get a nice CSS theme)… but I simply cannot login. It gives 404 post responses.
Proof of failing login:
curl -H 'content-type: application/json' \
--data-raw '{ \
"username":"tetris11", \
"password":"mypassword", \
"password_verify":"mypassword, \
"show_nsfw":true \
}' lemmy.mydomain.com/api/v3/user/register
returns:
<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>nginx/1.25.1</center>
</body>
</html>
But if I change my domain into localhost:
curl -H 'content-type: application/json' \
--data-raw '{ \
"username":"tetris11", \
"password":"mypassword", \
"password_verify":"mypassword, \
"show_nsfw":true \
}' localhost:8536/api/v3/user/register
I get
{ "jwt":"XXYYXXYY.XXYYXXYYYX",
"registration_created":false,
"verify_email_sent":false
}
or on repeated attempts:
{"error":"user_already_exists"}
My API is up but cannot be reached by https?
My lemmy.hjson
database: {
# put your db-passwd from above
password: "db-password"
}
# replace with your domain
hostname: "lemmy.mydomain.com"
bind: "127.0.0.1"
tls_enabled: true
federation: {
enabled: true
}
setup: {
# Username for the admin user
admin_username: "tetris11"
# Password for the admin user. It must be at least 10 characters.
admin_password: "mypassword"
# Name of the site (can be changed later)
site_name: "Welcome to the My Lemmy"
# Email for the admin user (optional, can be omitted and set later through the web>
admin_email: "[email protected]"
}
# remove this block if you don't require image hosting
pictrs: {
## This port appears to be hardcoded
url: "http://127.0.0.1:8080/"
}
}
My lemmy-ui.service
[Unit]
Description=Lemmy UI - Web frontend for Lemmy
After=lemmy.service
Before=nginx.service
[Service]
User=lemmy
WorkingDirectory=/var/lib/lemmy-ui
ExecStart=/usr/bin/node dist/js/server.js
##Environment=LEMMY_UI_HOST=0.0.0.0:8536
Environment=LEMMY_UI_LEMMY_INTERNAL_HOST=localhost:8536
Environment=LEMMY_UI_LEMMY_EXTERNAL_HOST=lemmy.mydomain.com
Environment=LEMMY_UI_HTTPS=true
Environment=RUST_LOG=info
Restart=on-failure
# Hardening
ProtectSystem=full
PrivateTmp=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
My lemmy.service
[Unit]
Description=Lemmy - A link aggregator for the fediverse
After=network.target
[Service]
User=lemmy
ExecStart=/home/lemmy/.cargo/bin/lemmy_server
Environment=LEMMY_CONFIG_LOCATION=/etc/lemmy/lemmy.hjson
Environment=PICTRS_PATH=/var/lib/pictrs
Environment=PICTRS_ADDR=127.0.0.1:8080
Restart=on-failure
# Hardening
ProtectSystem=yes
PrivateTmp=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
My nginx.conf
limit_req_zone $binary_remote_addr zone=lemmy.mydomain.com_ratelimit:10m rate=>
server {
server_name lemmy.mydomain.com;
access_log /var/log/lemmy.access.log combined;
location / {
proxy_pass http://0.0.0.0:1234/; ## lemmy
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
listen 443 ssl http2; # managed by Certbot
listen [::]:443 ssl http2;
ssl_certificate /etc/letsencrypt/live/lemmy.mydomain.com/fullchain.pem; # mana>
ssl_certificate_key /etc/letsencrypt/live/lemmy.mydomain.com/privkey.pem; # ma>
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
When using the first command with
-i
, what headers are shown (Location
)?