A very minimal, unbloated archiving and bookmarking tool

Overview

sharc

sharc is a minimalistic bookmarking tool that archives the pages locally at your device and organizes them in a simple web interface. The download of the files is only based on wget - it has no other dependencies!

Setup

To understand the logic behind the setup, it is advisable to look into the files archive, assets/main.js and setup.

In archive at the top you can see the line

dir="%dir%" && cd "$dir"

and in assets/main.js the first two lines are:

const locale = "%locale%";
const timeZone = "%timeZone%";

These are the environment variables that have to be set before you can use the program. You can either do it manually or simply run the setup script:

./setup

The script sets %dir% based on the directory you are currently in (e.g. /srv/http/archive) and %locale% and %timeZone% based respectively on your locale (e.g. en-GB) and timezone (e.g. Australia/Sydney).

Now copy archive to /usr/local/bin:

sudo cp archive /usr/local/bin

How to use

Using it is very simple and intuitive. Every time you want to archive a page, you run

archive <link>

in your terminal. This downloads the page and adds the link in links.js.

To get to the overview page, either open index.html in the browser or – if you have a web server installed locally – navigate to http://localhost/archive (or whatever your path is).

How it's organized

In addition to the date and the link, you can see a third column in the table that shows the number of snapshots of the URL.

Overview of all archived links

If you click on the number, you will get to a subpage with all snapshots of the particular link.

Overview of all snapshots of a link

Below that, there is a link to a subpage to see an overview of all archived URLs of the respective domain.

Overview of all URLs of a domain

Hosting a sharc instance

What if you don't want to save the archive on your local machine, but on your server and make it accessible to the world, is that possible? Yes!

There are probably several ways you could do it, but here's a simple way I can recommend:

  1. Download/clone the repo to a directory of choice (e.g. /var/www/html/archive) and do the setup as described above
  2. Then add a file named archive on your local machine with the following content:
#!/bin/sh

ssh <user>@<hostname> "archive $1; exit"

Replace <user> with your SSH username and <hostname> with the IP or address of your site.

  1. Make the file executable:
sudo chmod +x archive
  1. Move the file to /usr/local/bin
sudo mv archive /usr/local/bin

That's it! Now every time you want to add a page to your archive, simply run the following command on your local machine:

archive <link>

The page will be downloaded on your server and will be publicly visible at the URL you chose above (e.g. https://example.com/archive).

You might also like...

jQuery based scrolling Bar, for PC and Smartphones (touch events). It is modern slim, easy to integrate, easy to use. Tested on Firefox/Chrome/Maxthon/iPhone/Android. Very light 7ko min.js and 1Ko min.css.

Nice-Scrollbar Responsive jQuery based scrolling Bar, for PC and Smartphones (touch events). It is modern slim, easy to integrate, easy to use. Tested

Jan 18, 2022

ToastmeJS is a very simple, flexible and light weigth plugin that shows Notifications and modal Dialogs on your website.

⚡ ToastmeJS ToastmeJS is a very simple, flexible and light weigth plugin that shows Notifications and modal Dialogs on your website. Customize positio

Jun 20, 2022

Very simple full-stack application using React, Java Spring Boot, and PostgreSQL

Very simple full-stack application using React, Java Spring Boot, and PostgreSQL. The API was built following the N-Tier architecture. The goal was to explore and learn more in-depth the development of APIs, the use of Docker and deploying with AWS.

Apr 23, 2022

A form management library for SolidJS that is very lightweight and simple!

solform A form management library for SolidJS that is very lightweight and simple! Why solform Very easy, fast, lightweight and powerful! It has built

Nov 15, 2022

This package creates embeds and buttons in a very simple way using the whatsapp-web.js module for whatsapp

This package creates embeds and buttons in a very simple way using the whatsapp-web.js module for whatsapp

This package creates embeds and buttons in a very simple way using the whatsapp-web.js module for whatsapp

Jan 3, 2023

This is our second school project in HTML 5, CSS 3 and JS. In this website you can find very interesting information about the countries around the world.

This is our second school project in HTML 5, CSS 3 and JS. In this website you can find very interesting information about the countries around the world.

Team Geonomy 💻 About This is a website about with interatcive map and very interesting information about different coutries 🗂️ Used technologies Use

Nov 23, 2022

Jaksel Script, Programming language very modern and Indonesian style

Jaksel Script Jaksel Script is a new programming language, very modern, easy to learn, using Indonesia-slang language. No programming experience requi

Jan 3, 2023

Very useful website application to memorize all the tasks of the day, mark the complete ones, organize them by importance and finally delete them.

To Do List Very useful website application to memorize all the tasks of the day, mark the complete ones, organize them by importance and finally delet

Jul 29, 2022

To Do list app. Very useful to keep track of daily activities. Made with ❤️, JavaScript and bundle with Webpack

To Do list app. Very useful to keep track of daily activities. Made with ❤️, JavaScript and bundle with Webpack

To Do List ⚙️ This is a To Do list App to practice Javascript and Webpack deployment. Live Demo ⚙️ GitHub Pages: DEMO Tech ⌘⇧ HTML & CSS best practice

Oct 17, 2022
Owner
sadir
sadir
An exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes.

Stupid Database This is an exercise in building a very minimal (and very stupid) in-memory SQL-like database for educational purposes. None of this co

Fabio Akita 196 Dec 20, 2022
ArchiveWeb.page Express offers high-fidelity web archiving directly in the browser

ArchiveWeb.page Express offers high-fidelity web archiving directly in the browser! It provides a more streamlined version of ArchiveWeb.page system without requiring a custom extension or desktop app!

Webrecorder 5 Jul 21, 2022
A Very Good Documentation Site created by the Very Good Ventures Team 🦄

Very Good Docs Site Developed with ?? by Very Good Ventures ?? A Very Good Docs Site created by the Very Good Ventures Team. Generated by the Very Goo

Very Good Open Source 8 Nov 2, 2022
Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics.

Gatsby-starter-minimal-blog - Typography driven, feature-rich blogging theme with minimal aesthetics. Includes tags/categories support and extensive features for code blocks such as live preview, line numbers, and line highlighting.

Priya Chakraborty 0 Jan 29, 2022
A very simple tool that generates multiple spellings of a phone number (to effectively search for it using the OR operator and quotes)

phonenumberqueryconstructor A very simple tool that generates multiple writings of a phone number (to effectively search for it using the OR operator

Cyb_detective 10 Dec 7, 2022
Show More Less - jQuery - Very useful tiny tool

myOwnLineShowMoreLess Show More Less - jQuery - Very useful tiny tool. Demo Getting Started This is simple plugin developed using jQuery. Prerequisite

Siva 1 Dec 29, 2020
Chronos is an ML Scheduler Tool, helping students to block and manage time with minimal manual intervention.

Chronos (Currently in progress) Chronos is an ML Scheduler Tool, helping students to block and manage time with minimal manual intervention. It adapts

Shromann Majumder 3 Aug 17, 2022
A minimal yet powerful HTTP client/API testing tool made for speed.

req req is a lightweight, minimal yet powerful HTTP client slash API testing tool designed for speed. Contents Features Installation Documentation Con

Siddharth 37 Aug 29, 2022