Non-Docker Install on Fedora, Apache, and sqlite - Error on Creating User and Unable to Share Projects with Links

I’ve installed the Vikunja API and frontend on a Fedora 39 workstation on Apache and sqlite. I have two strange issues that I can’t seem to resolve.

  1. I am able to access the Vikunja frontend from a web browser but when I create a user through the web frontend, it shows an “Internal Network Error” on the screen. However, the user account is actually created. I am able to log into the frontend using the user account credentials afterwards.

  2. From the web frontend, I am able to create a new project with tasks. I want to share this project with another user in Vikunja. So, I share the project with a link. However, when when the other user clicks on the link, it says the URL does not exist.

I most likely configured something incorrectly but I’m not sure what. I am by no means an expert.

In the Vikunja config.yml file, I have the following settings configured. Are they correct?

  • “publicurl” is set to the URL that the users will enter to visit the Vikunja web frontend.
  • “enablelinksharing” is set to true.
  • “enableregistration” is set to true so that users can create their own account through the web frontend.
  • for database type, I have it set to sqlite.
  • for database username, I have it set to blank or “”. (Its my understanding that sqlite doesn’t use usernames?)
  • for database password, I have it set to blank or “”.
  • for “cors”, I have it set to enable.

I placed the Vikunja frontend files in the default directory location for Apache at /var/www/html/. In my Apache configuration file, httpd.conf, I have the following settings:

  • “User” and "Group: are both set to “apache”. Do I need to give this “apache” account permission on anything in Vikunja?
  • “ServerName” is set to the name of the external URL. (Should this be “localhost” instead?)

I am able to reach Vikunja through the public URL and can navigate the site by clicking without issue.

When I access a sub page within Vikunja by typing the URL directly (http://(public URL)/tasks/67), it says the URL cannot be found.

However, when I append the port interface number (e.g. 3456) to the URL, for instance http://(public URL):3456/tasks/67 works fine.

This seems to be an error in my Apache configuration. I am just hosting one site on this machine so I have placed the Vikunja frontend files under the default directory of /var/www/html.

Here is a snippet of my Apache httpd.conf file:

Listen 80
ServerName publicURL:80

I am assuming I need to somehow rewrite the URL to include the interface number (3456) on any links within Vikunja in my Apache configuration?

Which version are you using? As of 0.23 (and including all the current unstable builds) there’s no distinction between frontend and backend anymore, and unless you want a reverse proxy, a separate web server is no longer needed. Refer to the 0.23 release notes for details.

I’d recommend installing v0.23 from here. As far as I can tell the docs have not been updated yet to reflect the changes done in 0.23

I am on 0.23 and I did install the RPM of Vikunja from 0.23.0 | S3 Browser.

This is a noob question – but the installation seems to have just installed the API but there was no indication of any frontend files for a web server to reference.

So I copied the API from here: frontend | S3 Browser to the Apache host directory.

Everything kind of seems to work except for the two issues in my initial question.

What should I have done instead?

Hi,

as per the 0.23 release notes linked above, there is no separate frontend anymore. Instead, the API (now a single binary, the one that got installed from the RPM you downloaded) serves both the frontend and backend on port 3456. The installation documentation has not been updated yet as far as I can tell, I can imagine this to be a little confusing While the frontend repo still contains the 0.23 version, it’s no longer needed to install and run Vikunja.

If you simply so go http://public-url:3456) everything should work already, completely without the Apache web server. You can optionally configure Apache as reverse proxy (or any other piece that can function as reverse proxy, such as Nginx, Traefik, whatever), but you don’t need a web server serving the frontend anymore.

You’re right. I stopped the Apache web service and am still able to access Vikunja through the public URL.

I even made the interface port 80 so that users don’t have to include the port number when reaching the frontend at http://public-url/. Any downsides to doing this?

Not technically a downside, but nowadays TLS encryption is pretty much standard, so instead of exposing Vikunja on port 80 (which requires special configuration or running it as root, which I’d certainly not recommend), you’d typically want to deploy a reverse proxy listening on port 443 with a proper certificate (e.g. Let’s Encrypt) and then proxying the requests to port 3456.