Installation Process

LinkAce is a self-hosted archive to collect links of your favorite websites. Save articles to read them later, tools to use them in your next project, or historic content to archive it for the long term. LinkAce comes with a lot of features while keeping a clean and minimal interface.

Additional notes and other information can be found at the bottom of this page.

To install LinkAce, you'll want to SSH into your server and navigate to where you want to install the containers. I install them in /home in this demonstration.

So you'll type:

cd /home

Then you'll want to make a LinkAce directory and cd into that directory

mkdir LinkAce && cd LinkAce

Next step is to create 2 files:

touch docker-compose.yml

touch .env

Now, let's edit the docker-compose file:

nano docker-compose.yml

Paste the following into the docker-compose.yml:

version: "3"

services:

  # --- MariaDB
  db:
    image: mariadb:10.5
    restart: unless-stopped
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
    environment:
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_DATABASE}
    volumes:
      - db:/var/lib/mysql

  # --- LinkAce Image with PHP 7.4 and nginx
  app:
    image: linkace/linkace:simple
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - 80:80
    volumes:
      - ./.env:/app/.env
      - linkace_logs:/app/storage/logs

volumes:
  linkace_logs:
  db:
    driver: local

Change port 80 to whatever port you want to use so that it is something like: 81:80

Now save and exit: CTRL+O, Enter, CTRL+X

Next, you'll want to edit the .env file:

nano .env

And paste the following in the .env:

## LINKACE CONFIGURATION

## Basic app configuration
# The application name is used internally and may not be changed
APP_NAME=LinkAce
COMPOSE_PROJECT_NAME=linkace
# The URL should be set if you notice issues with URLs generated by Laravel, which might be an issue with
# nginx configuration or the proxy you use.
APP_URL=http://localhost
# The environment is usually 'production' but may be changed to 'local' for development
APP_ENV=production
# The app key is generated later, please leave it blank
APP_KEY=
# Enable the debug more if you are running into issues or while developing
APP_DEBUG=false
# Set to true, if you are using a proxy that terminates SSL. Required to get the correct URLs for LinkAce
FORCE_HTTPS=false
# Indicates that the setup was completed and the app can be used now
SETUP_COMPLETED=false
# Set the time after a session expires automatically, in minutes. Default is 7 days.
SESSION_LIFETIME=10080


## Backup configuration
# Enable backups here
BACKUP_ENABLED=false
# Choose the destination of the backup. If you set up AWS S3 credentials below you may choose 's3' which is used
# as a synonym for AWS. Leave blank or set to 'local' if you want to store backups within /storage/app/backups.
BACKUP_DISK=s3
# Set to false if you do not want to be notified about successful or broken backups
BACKUP_NOTIFICATIONS=true
# The notification email may be used to get backup notifications
BACKUP_NOTIFICATION_EMAIL=your@email.com
# Maximum size of all backups in megabytes
BACKUP_MAX_SIZE=512


## Amazon Web Services (AWS) S3 configuration
# Define the key ID, the access key, the region and your bucket name here if you want to use AWS S3 for backups
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=


## Mail configuration
MAIL_FROM_ADDRESS=your@email.com
MAIL_FROM_NAME=LinkAce
# Set the driver used for sending email here, default is `smtp`
MAIL_DRIVER=smtp
# Set the SMTP host and its port here
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
# Set the username used to connect to the SMTP server here
MAIL_USERNAME=null
# Set the password used to connect to the SMTP server here
MAIL_PASSWORD=null
# If your SMTP server uses encrypted connections, enable it here by setting the variable to `tls`
MAIL_ENCRYPTION=null


## Configuration of the database connection
## If you are using the standard configuration provided by LinkAce, you can leave all values except the password as
## they are. Docker will automatically create a linkace database and a corresponding user.
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=linkace
# Even if you use the standard configuration, please set a secure password here.
DB_USERNAME=linkace
DB_PASSWORD=ChangeThisToASecurePassword!


## Redis cache configuration
# Set the Redis connection here if you want to use it
REDIS_HOST=redis
REDIS_PASSWORD=ChangeThisToASecurePassword!
REDIS_PORT=6379


## You probably do not want to change any values blow. Only continue if you know what you are doing.
# Configure various driver
SESSION_DRIVER=file
LOG_CHANNEL=stack
BROADCAST_DRIVER=log
CACHE_DRIVER=file
QUEUE_DRIVER=database

## Using Redis sockets
# If you want to use Redis via a Unix socket, you can remove the hash before the following lines, but remove one before
# the "CACHE_DRIVER" line above. Also, set a proper path to your Redis socket.
#CACHE_DRIVER=redis-socket
#SESSION_CONNECTION=redis-socket
#REDIS_SCHEME=unix
#REDIS_PATH=/path/to/redis.sock

Adjust the settings in here as necessary. Be sure to leave the APP_KEY variable empty and then save and exit: CTRL+O, Enter, CTRL+X

In order to set the correct read/write permissions for the container to modify the .env file, you'll need to run the following command:

chmod 666 .env

Now that we've done all of this, we should be able to run the following:

docker-compose up -d

This should start the process of downloading the requisit images and then deploying the container.

Next we'll create the APP_KEY by entering the following into our terminal:

docker exec linkace_app_1 php artisan key:generate

Once the containers have come up, you can go to http://your-server-ip:81

Be sure to change the URL and port above to your server's actual IP and the port you declared in the docker-compose above.

You can go through the setup process of connecting to the database and setting up the user account.

 

NOTE: At the time of creating this tutorial, only a single user account is an option. They are planning to add multi-user support in version 2. Source

LinkAce supported architectures can be found here

LinkAce Github

Original Docker-Compose can be found here

Original .env file can be found here

 


Revision #3
Created 15 December 2021 21:52:12 by DB T3CH
Updated 17 December 2021 13:43:00 by DB T3CH