Mirror of MarceauKa/shaark@github.com
Go to file
MarceauKa 4b829dc843 Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
app Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
bootstrap 🎉 2019-08-22 20:12:37 +02:00
config Ability to customize background image ♻️ Refactored settings (back and front) 2019-09-28 18:04:32 +02:00
database Log all logins and associated devices with new section in settings 🔧 Secure login typo 🔧 AlreadyLogged redirection 2019-09-26 16:15:24 +02:00
public Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
resources Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
routes Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
storage 🚧 Locale settings 2019-08-29 16:33:17 +02:00
tests 📦 Laravel 6 ♻️ Simplified Hashid 📦 TNTSearch 💩 Feeds 2019-09-03 16:48:39 +02:00
.editorconfig 🎉 2019-08-22 20:12:37 +02:00
.env.example 🔖 1.2.5 📝 Readme 🍱 Assets versionning 2019-09-28 18:13:15 +02:00
.env.testing 👌 E2E tests 🔧 Env and config 2019-08-24 01:30:40 +02:00
.gitattributes 🎉 2019-08-22 20:12:37 +02:00
.gitignore 🍱 Assets are now staged preventing new compilation on each deployment 🐛 Save button on LinkForm doesn't redirect to archiving 2019-09-05 15:59:51 +02:00
.styleci.yml 🎉 2019-08-22 20:12:37 +02:00
artisan 🎉 2019-08-22 20:12:37 +02:00
changelog.md Move tagged posts to another tag ♻️ Refactored managing tags 🔧 Loader vue component 2019-09-29 16:33:58 +02:00
composer.json 📝 Readme 🔧 Composer 2019-09-26 16:22:35 +02:00
composer.lock Log all logins and associated devices with new section in settings 🔧 Secure login typo 🔧 AlreadyLogged redirection 2019-09-26 16:15:24 +02:00
package-lock.json Archiving 2019-09-02 18:15:52 +02:00
package.json 🚧 Link archiving 2019-09-02 13:55:24 +02:00
phpunit.xml 👌 E2E tests 🔧 Env and config 2019-08-24 01:30:40 +02:00
readme.md 🔧 Readme screenshots 2019-09-28 18:16:17 +02:00
server.php 🎉 2019-08-22 20:12:37 +02:00
webpack.mix.js 🔖 1.2.5 📝 Readme 🍱 Assets versionning 2019-09-28 18:13:15 +02:00
yarn.lock 🎉 2019-08-22 20:12:37 +02:00

readme.md

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
  • Export
  • Dark mode
  • i18n (english and french)
  • NEW Archiving
  • NEW 2-FA with email
  • RSS feed

Screenshots

Homepage

Installation

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

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.

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.

Security

Global privacy

If you don't want your content being publicy accessible, you can update this preference once application is installed from settings section.

2-FA

You're able to active 2-FA (2 factors authentication). By default 2-FA is disabled but you can update it from your app settings. Code length and code expiration are also configurable. Test if you application can send emails before enabling this feature.

Auths monitoring

Shaarli logs all successful and failed auths with their associated devices.

Update

Update the application by running:

php artisan down
git reset --hard
git pull origin master
composer install --no-dev -o
php artisan migrate --force -n
php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan view:clear
php artisan queue:restart # if you're using queues
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}

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