docs: Add troubleshooting guide

This commit is contained in:
Matthew Wild 2021-10-20 14:03:08 +01:00
parent dae151c7c9
commit 6160d259e6
2 changed files with 126 additions and 0 deletions

View File

@ -0,0 +1,125 @@
---
title: "Troubleshooting"
---
# Self-hosted Snikket troubleshooting
Problems with your Snikket setup? Don't worry! Most people don't experience
any issues, but if you do, it's likely something simple. This page describes
problems you might encounter, and how to solve them.
## General problems
### "Snikket is starting" page does not go away
If this page stays for more than a few minutes, there was probably an
issue obtaining certificates for your Snikket service. For more
information on diagnosing certificate issues, see the
['Certificates' section](#certificates) later on this page.
### Unable to share large files
If you find that your users cannot share large files through Snikket,
there could be a couple of reasons:
- If you are using Snikket behind a reverse proxy, ensure that the proxy
does not place a limit on the size of uploads. Check our [reverse proxy
guide](../../advanced/reverse_proxy/) for more information.
- If the file is over 100MB, Snikket will attempt a direct device-to-device
transfer. This requires you and your recipient to be online at the
same time, and it only works between two users (not in groups). Also
note that direct transfers are not currently supported to or from iOS
devices.
- To share files over 100MB with a Snikket group or iOS users, we
recommend a dedicated file transfer service. You can find a list of
standalone [self-hosted file transfer services](https://github.com/awesome-selfhosted/awesome-selfhosted#file-transfer---single-click--drag-n-drop-upload), use a system
such as NextCloud, or select one of the many free online file transfer
services.
### Invitations are always expired
If all invitation links show as expired immediately after you create them:
- Check you copied the entire URL correctly.
- Ensure that you don't have an XMPP server or other service running on
the same system as Snikket using port 5280.
- If you use a reverse proxy, check that it is correctly forwarding
requests to Snikket. See our [reverse proxy guide](../../advanced/reverse_proxy/)
for more info.
### Not responsible for this domain
If you see an error in the app reporting that the server is "not
responsible for this domain":
- Check that you do not have another XMPP server running on the same
system as Snikket. It may be using the ports that Snikket needs.
- Check that your DNS setup is correct, and you do not have SRV records
left over from a previous XMPP installation on the same domain. If you
recently modified your DNS records, you may need to wait a while for
DNS caches to expire the old records.
## Certificate problems
Certificates are an important part of securing connections to your
Snikket.
Snikket automatically obtains certificates from Let's Encrypt, and keeps
them up to date. This usually works without problems, but it can be
sensitive to a number of things that might cause it to fail.
### Common causes
Common causes of an inability to obtain or renew certificates:
#### Missing or incorrect DNS records
Snikket needs 3 DNS records to be added. Ensure you followed the steps
from the installation guide correctly, particularly the
[DNS configuration](https://snikket.org/service/quickstart/#step-1-dns).
If your server supports IPv6, you may also add that to DNS (using an
AAAA record). If you do this, you *must* tell Snikket by adding the
following line to your snikket.conf:
```
SNIKKET_TWEAK_IPV6=1
```
#### Port 80 blocked
Ensure that port 80 is open and accessible. You can review a [list of
ports required by Snikket](../../advanced/firewall/). Port 80 is required
to be open by Let's Encrypt so they can verify your domain.
On a VPS or in a cloud environment, your provider may require you to
manually open ports, e.g. in their web dashboard. If you are running in
a LAN, you may need to forward ports in your router's web interface.
Finally, check the firewall on the server itself (e.g. ufw, iptables or
nftables).
#### Incorrect reverse proxy configuration
If you have a reverse proxy set up (e.g. to run Snikket on the same server
as other websites or services), it needs to correctly forward requests
to Snikket on both http and https.
See our [Snikket reverse proxy documentation](../../advanced/reverse_proxy/)
for more information on correctly configuring reverse proxies.
### Certificate debugging commands
If everything looks okay and you're not sure what the problem could be,
you can get the error message from the debug log:
```
docker-compose exec snikket_certs cat /var/log/letsencrypt/letsencrypt.log | grep detail
```
Once you have fixed any problems, you can force a new attempt with the
following command:
```
docker-compose exec snikket_certs su letsencrypt -- -c "certbot renew --config-dir /snikket/letsencrypt --cert-path /etc/ssl/certbot --force-renew
```

View File

@ -8,6 +8,7 @@ nav:
- index.md
- Setup:
- setup/quickstart.md
- setup/troubleshooting.md
- Advanced:
- advanced/dns.md
- advanced/firewall.md