mirror of
https://github.com/tborychowski/self-hosted-cookbook.git
synced 2025-01-23 20:19:11 +00:00
98 lines
2.9 KiB
Markdown
98 lines
2.9 KiB
Markdown
|
# LinkAce
|
||
|
- Decent UI with light & dark themes (but not without issues & FOUCs)
|
||
|
- UX is a bit odd at times and not very intuitive (e.g. Clicking on a link name will open the link in one place, but in another it will open the link-ace entry)
|
||
|
- Imports only from `bookmarks.html` exported from a browser (and it looks like it's crashing at the end, as you need to manually refresh the page)
|
||
|
- Auto-tags bookmarks on import
|
||
|
- No bulk actions (e.g. cannot tag/untag 10 items at once)
|
||
|
- Search is not quick & easy to use and filters are odd:
|
||
|
- e.g. you can filter for "Private links only" but not for "Public links only"
|
||
|
- you can uncheck "title" and "description" and it will still find stuff
|
||
|
|
||
|
- [Github repo](https://github.com/Kovah/LinkAce/)
|
||
|
- [Docs](https://www.linkace.org/docs)
|
||
|
|
||
|
![Screenshot](linkace.png)
|
||
|
|
||
|
## Important step!
|
||
|
After `docker-compose up -d` you need to run a few commands:
|
||
|
```sh
|
||
|
# generate app key
|
||
|
docker exec linkace_app_1 php artisan key:generate
|
||
|
# set permissions
|
||
|
chmod 777 .env
|
||
|
sudo chmod -R 777 logs
|
||
|
```
|
||
|
|
||
|
## .env
|
||
|
```conf
|
||
|
# The application name is used internally and may not be changed
|
||
|
APP_NAME=LinkAce
|
||
|
COMPOSE_PROJECT_NAME=linkace
|
||
|
APP_URL=http://192.168.1.10
|
||
|
APP_ENV=production
|
||
|
APP_DEBUG=false
|
||
|
SETUP_COMPLETED=false
|
||
|
|
||
|
# The app key is generated later, please leave it blank
|
||
|
APP_KEY=
|
||
|
# Set to true, if you are using a proxy that terminates SSL. Required to get the correct URLs for LinkAce
|
||
|
FORCE_HTTPS=false
|
||
|
# session expiration in minutes. Default is 7 days.
|
||
|
SESSION_LIFETIME=10080
|
||
|
|
||
|
BACKUP_ENABLED=false
|
||
|
BACKUP_DISK=local
|
||
|
BACKUP_MAX_SIZE=512
|
||
|
|
||
|
## 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
|
||
|
# 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.
|
||
|
SESSION_DRIVER=file
|
||
|
LOG_CHANNEL=stack
|
||
|
BROADCAST_DRIVER=log
|
||
|
CACHE_DRIVER=file
|
||
|
QUEUE_DRIVER=database
|
||
|
```
|
||
|
|
||
|
## docker-compose.yml
|
||
|
```yml
|
||
|
---
|
||
|
version: "3"
|
||
|
services:
|
||
|
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
|
||
|
|
||
|
app:
|
||
|
image: linkace/linkace:simple
|
||
|
restart: unless-stopped
|
||
|
depends_on:
|
||
|
- db
|
||
|
ports:
|
||
|
- "3123:80"
|
||
|
volumes:
|
||
|
- ./.env:/app/.env
|
||
|
- ./logs:/app/storage/logs
|
||
|
- ./backups:/app/storage/app/backups
|
||
|
```
|