marceauka/laravel-shaarli

Your place to archive your links, stories, passwords and archive your content.


Keywords
laravel, links, shaarli, albums, bookmarks-manager, chests, password-manager, pdf, self-hosted, storybook, vuejs, youtube
License
MIT

Documentation

Laravel Shaarli

It's a free and open source platform to host by yourself.

Shaarli allows you to save your web links (websites, youtube videos, ...), to share your stories and manage your web accounts.

All of your content can be private or public and can be browsed by tags or all-in-one search.

It's ready to use for production. Laravel Shaarli is inspired by Shaarli but built with Laravel and Vue.js.

Summary

Requirements

  • Linux or macOS env
  • PHP >= 7.2
  • MySQL >= 5.7 (or SQLite >= 3)
  • Node.js >= 6
  • (Optional) Redis
  • (Optional) youtube-dl

Features

  • Links : to save a web content such a website or a youtube video
  • Stories : posts with markdown content
  • Chests : to save your web accounts
  • Rapid sharing through bookmark extension
  • Tagging system, search and RSS feeds
  • Private content or entirely private
  • Original Shaarli import
  • RSS feed
  • Export
  • Dark mode
  • i18n (english and french)
  • NEW Archiving

Screenshots

Homepage Homepage Dark Mode

Installation

git clone https://github.com/MarceauKa/laravel-shaarli && cd laravel-shaarli
cp .env.example .env # Then edit it
composer install
npm install && npm run prod

Then run php artisan shaarli:install (for interactive installation) or php artisan migrate --seed (with default data). Default user is admin@example.fr with password secret.

Global privacy

If you don't want your content being publicy accessible, update the .env file and set APP_PRIVATE to true. Alternatively, you can update this preference once application is installed from settings section.

Archiving

Each link you share can be archived the way you want:

  • youtube-dl when available on your system, will be used to download media from youtube, soundcloud, vimeo and few more sites.

  • Puppeteer will be used by default to save the webpage as a PDF.

You can adjust archiving configuration in the settings section.

Update

Update the application by running php artisan shaarli:self-update or manually:

php artisan down
git reset --hard
git pull origin master
composer install
php artisan migrate --force -n
php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan view:clear
npm install
npm run prod
php artisan queue:restart # if you're using queue
php artisan up

Going live

Check these options before going live.

Composer flags

composer install --no-dev -o

.env options

APP_ENV=production
APP_DEBUG=false
APP_URL=https://{your_url}
CACHE_DRIVER=file # or redis
SESSION_DRIVER=file # or redis
QUEUE_CONNECTION=sync # or redis, database
MAIL_DRIVER=smtp
MAIL_FROM_NAME={your_name}
MAIL_FROM_ADDRESS={your_email}

Compiling assets

npm run prod

Artisan routines

php artisan cache:clear
php artisan route:cache
php artisan config:cache

Tests

  1. Be sure to have a testing database with touch database/testing.sqlite and have composer require-dev dependencies installer.
  2. Run testing server php artisan serve --env=testing.
  3. Run tests php artisan dusk --env=testing

Licence

MIT