/unmark

An open source to do app for bookmarks.

Primary LanguagePHPOtherNOASSERTION

Unmark

The open source to-do application for bookmarks.

NOTICE June 15, 2020: The new default branch is named "trunk". ✊

We offer this source code for Unmark completely free. We do so in hopes that Unmark will live on for many years even if we stop maintaining it. You can also use it for free (with a paid upgrade) at Unmark.it

To support its further development please consider subscribing to Unmark.it, donating via Paypal. Or, you can contribute to the code.

Installation

Running Unmark is only recommended for intermediate users. This doesn't mean if you're a beginner we don't want you to try. Hack away! Just that you should expect some speedbumps (though, we're eliminating them all the time). If you need assistance beyond what is provided please create an issue on Github. Before creating a new issue we recommend search through the issues on GitHub to see how others have solved their problems.

Technical requirements

It is now recommended to use Docker / Docker Compose to install and run Unmark locally both for personal use and for development. Please see the installation instructions section below.

However, if you're going to run your own server:

  • Apache 2.x
  • PHP 5.6 or greater
  • mySQL 5.7 or greater

Common Issues

Some common issues have been reported. Some are trying to load Unmark on a sub-directory, using different versions of PHP or Apache, or using completely different databases. While it may be possible to do so, expect issues.

Other common things that come up:

  • PHP mod_rewrite isn't enabled
  • PHP mysqli extension not installed

Installation Instructions

With Docker / Docker Compose

We've included the appropriate Docker Compose, Dockerfile, and PHP.ini files to run Unmark locally on Windows or Mac with almost zero set up. We've been using Docker on both Windows and Mac for the last two releases and we like it. However, this is still in its early phases so please report any issues that you find.

Warning: Running docker-compose down -v will erase Docker volumes including your local database. If you do not include the -v argument your database will remain intact. If you need to run -v log into Unmark and export your marks first.

How to start Unmark via Docker for personal use

  • Download and install Docker
  • Download and install Docker Compose
  • Download the latest release
  • Unpack the archive into your desired location
  • Rename the file /application/config/database-sample.php to /application/config/database.php
  • In Terminal or Powershell - Run docker-compose up -d (to shut Unmark down run docker-compose down)
  • Navigate to http://localhost and click "Install"
  • If successful, you'll be asked to create an account

From start Unmark via Docker for development

  • Download and install Docker
  • Download and install Docker Compose
  • Run git clone https://github.com/cdevroe/unmark.git (Or, if you've forked the repo, use your URL)
  • Copy the file /application/config/database-sample.php to /application/config/database.php (leave database-sample.php in place)
  • Rename the file /application/config/database-sample.php to /application/config/database.php
  • Run docker-compose up -d (to shut Unmark down run docker-compose down)
  • Run npm install
  • Run grunt more info on Grunt
    • To run Grunt you'll need to also install Ruby and the SASS gem
  • Navigate to http://localhost and click "Install"
  • If successful, you'll be asked to create an account

How to start Unmark from Zip on your own server for personal use

No longer recommended, but do whatever you want!

  • Download the latest release
  • Unpack the archive into your desired location
  • Rename the file /application/config/database-sample.php to /application/config/database.php
  • Create a database for Unmark to use in mySQL
  • Fill in proper database credentials in /application/config/database.php
  • Point your browser to your-local-url/setup
  • If succesfull, you'll be asked to register a username and password

Upgrading to the latest release

From Release

  • Download the latest release
  • Shut down Unmark docker-compose down
  • Replace all Unmark files (keeping your local /application/config/database.php intact.)
  • Navigate to http://localhost/upgrade
  • Unmark will then make any database updates if needed
  • That's it!

From git repository

  • Run git pull origin trunk
  • Run npm update in the app's root directory
  • Run grunt in the app's root directory
  • Navigate to http://localhost/upgrade
  • Unmark will then make any database updates if needed
  • That's it!

Importing bookmarks

Unmark currently supports importing from Unmark's hosted version, any self-hosted version of Unmark, Readability, Pinboard, Delicious, Pocket and many other services.

To ensure this works properly be sure that your PHP.ini file's "max_upload_size" setting is larger than the file you're trying to import.

How to contribute to Unmark

Please consider donating via Paypal. Another major way you can contribute is to report any issues you find with Unmark on Github and being as detailed as possible about the issue you're having.

Another way is to contribute your own code via Pull Requests. Here are some notes on how to do that.

Forking and Pull Requests

  • Fork the repository on GitHub into your own account
  • Create your own branch of the trunk branch git checkout -b your-branch-name
  • Update your code and push those code changes back to your fork's branch git push origin your-branch-name
  • Submit a Pull Request using that branch
  • And please accept our thanks!

This makes it easy for us to test your code locally and also allows the community to have a discussion around it.

We use Grunt to compile our SASS files into CSS and concatenate and compress our JavaScript files for use and a few other small tasks. For any updates to JavaScript or styles you will need to use Grunt too. See the Grunt web site for help. We'd like to someday move away from Grunt for most of these tasks.

History

Unmark was originally created by Colin Devroe. It was a side-project called Nilai (the Indonesian word for "mark") and rebuilt from the ground up by Plain, a small software company, which included Jeff Johns, Kyle Ruane, Tim Whitacre, Chris Fehnel, Jakub Jakubiec and Colin Devroe.

Now it is being maintained by Colin, Kyle and the community in their spare time. Please consider donating or contributing code in order to keep Unmark alive and well.

Contributors

Currently being maintained by: @cdevroe and @kyleruane.

Extra special thanks to:

  • @phpfunk - who wrote most of Unmark's original codebase
  • @twhitacre
  • @kip9 - wrote the languages and migration back-up bits
  • @cfehnel - who handled support for the app

Also contributions by @thebrandonallen, @simonschaufi, @williamknauss, @hewigovens