LinkAce

LinkAce is a self-hosted archive to collect links of your favorite websites. LinkAce comes with a lot of features while keeping a clean and minimal interface.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

We’re using PHP in the stable version 8.0:

[isabell@stardust ~]$ uberspace tools version show php
Using 'PHP' version: '8.0'
[isabell@stardust ~]$

You’ll need your MySQL credentials. Get them with my_print_defaults:

[isabell@stardust ~]$ my_print_defaults client
--default-character-set=utf8mb4
--user=isabell
--password=MySuperSecretPassword
[isabell@stardust ~]$

Your website domain needs to be set up:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

cd to the directory one level above your DocumentRoot, then download LinkAce. You can find the latest version on the release page, replace the version below with the version number.

[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/Kovah/LinkAce/releases/download/v1.9.1/linkace-v1.9.1.zip
[isabell@stardust isabell]$ unzip linkace-v1.9.1.zip
Archive:  linkace-v1.9.1.zip
 inflating: linkace.zip
[isabell@stardust isabell]$ unzip -d linkace/ linkace.zip
[isabell@stardust isabell]$ rm linkace-v1.9.1.zip linkace.zip
[...]
[isabell@stardust isabell]$

After the installation has finished, remove your unused DocumentRoot and create a new symbolic link to the linkace/public directory.

[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ rm -f html/nocontent.html; rmdir html
[isabell@stardust isabell]$ ln -s /var/www/virtual/$USER/linkace/public html
[isabell@stardust isabell]$

Configuration

Set up a database

Run the following code to create the database <username>_linkace in MySQL:

[isabell@stardust ~]$ mysql -e "CREATE DATABASE ${USER}_linkace COLLATE utf8mb4_bin;"
[isabell@stardust ~]$

Note

Other collations like utf8mb4_general_ci may cause issues with different Unicode characters.

Create the .env file

Create a copy of the .env.example file and name it .env

[isabell@stardust ~]$ cd /var/www/virtual/$USER/linkace
[isabell@stardust linkace]$ cp .env.example .env
[isabell@stardust ~]$

Generate a secret key

Run the following command to generate a secret key for your application and prepare LinkAce for the setup:

[isabell@stardust ~]$ cd /var/www/virtual/$USER/linkace
[isabell@stardust linkace]$ php artisan key:generate
[isabell@stardust ~]$

Finishing installation

Point your browser to https://isabell.uber.space/ The built-in setup should start. Follow the instructions, enter your database credentials and register your user account.

Updates

Check LinkAce’s release page for the latest version. If a newer version is available, download the package. Overwrite all existing files with the new ones.

[isabell@stardust ~]$ cd /var/www/virtual/$USER/
[isabell@stardust isabell]$ wget https://github.com/Kovah/LinkAce/releases/download/vx.x.x/linkace-vx.x.x.zip
[isabell@stardust isabell]$ unzip linkace-vx.x.x.zip
Archive:  linkace-vx.x.x.zip
 inflating: linkace.zip
[isabell@stardust isabell]$ unzip -d linkace/ -o linkace.zip
[isabell@stardust isabell]$ rm "*".zip
[...]
[isabell@stardust isabell]$

Run the database migrations which are needed after all updates and delete the current cache:

[isabell@stardust ~]$ cd /var/www/virtual/$USER/linkace
[isabell@stardust linkace]$ php artisan migrate
[isabell@stardust linkace]$ php artisan cache:clear

Note

You may get a warning about running the migration in production mode. You should confirm the migration by answering with yes. Make sure to check the LinkAce upgrade guide so you don’t miss additional important steps.

Acknowledgements

This guide is based on the official LinkAce setup guide.


Tested with LinkAce v1.9.1 and Uberspace 7.12.0

Written by: Kevin Jost <https://github.com/systemsemaphore>