
Show HN: Linkding, a self-hostable bookmark service - sissbruecker
https://github.com/sissbruecker/linkding
======
sissbruecker
Linkding is a very lean bookmark service that provides bookmark management,
tag categorization and search. It is built to be self-hosted and runs
perfectly fine on a Raspberry Pi. It also provides an import/export function
that is compatible with other services like Pinboard.in.

After using Pinboard.in for several years I noticed that I basically only ever
use the features described above. Also while I like the minimal approach and
the quick UI of Pinboard, it could just look a little bit nicer. So I took
that opportunity to make a hobby project out of building such a service myself
while also learning something new. I decided on Python and Django as stack, as
I never really used Python and Django looked impressive. Building the
application took me around 2 weeks. I implemented the features above, added a
basic CSS framework with minimal tweaks so the UI looks nice and made
everything work on mobile. My take-aways from the project are that Django is
really awesome. Django is a batteries-included web framework and provides
pretty much everything you'll ever need OOTB. The documentation is among the
best I have ever seen. Also as someone who has been mostly working on SPAs /
rich clients for the last decade I have to admit it was a sobering experience
how quickly you can get results with an integrated server-side framework like
this. I'll definitely consider that approach more from now on.

If you are interested, the application is basically ready-for-use and easily
installed with Docker. I have been running it for 6 months now in a Docker
container on my Raspberry Pi and in terms of just dumping links into a storage
it suffices for me. I provided a demo instance with open registration here:
[https://demo.linkding.link](https://demo.linkding.link)

~~~
trungdq88
Nice project! But can as well provide a dummy account in the demo because it's
damn difficult to register for anything on my phone (especially with
complicated password rules)

~~~
dmxt
Please start using password manager for your sanity sake.

------
tdhz77
Not a fan of the name. I read it as linked in, thinking it was a bookmark
service by linked in at first. Perhaps, the counter positive, dinkling.

~~~
choward
I honestly didn't think of linked in whatsoever when I read that name.

~~~
quickthrower2
I did

------
kastden
This looks very nice! It’s not mentioned in the README, so I’m wondering how
persistence is handled? EDIT: To be clear, I see backups is mentioned, but I’m
wondering if it’s a database file like sqlite3 or something else.

~~~
sissbruecker
Yes, currently it uses a SQLite3 DB for storage. The DB is created or updated
with Djangos _migrate_ command which runs when the Docker container starts.
The DB file can be found in the _data_ folder.

Thanks for your comment, it made me realize I stopped thinking about
persistence at some point and now I had to look up on SQLite usage in
production. However for the apps current use-case of handling one account /
one person it seems fine to use SQLite.

~~~
kastden
Thanks for the explanation! I think SQLite is fine for this too.

My use case would be running this on AWS ECS, but since this wouldn't get
written to very often (probably) and the file hopefully wouldn't be very big
either, I could just have the container or a sidecar pull it from S3 on
startup and sync it at regular intervals and on shutdown.

------
iudqnolq
Want to call our your password policies. I was on mobile and wanted to see
what it was like without opening up my password manager and anything short or
stupid (qwerty, ...) was blocked. Was slightly irritating and yet delightful
and suggested to me you have a great attention to detail. Will give it a shot!

Edit: originally s/stupid/dumb, but HN changes that to "db". Ha!

~~~
sissbruecker
As the other commenter pointed out, those are just the standard policies
provided by Django ;)

------
mekster
It would work well if a browser's share button can send a link directly there.

I use NextCloud's bookmark on Android and it kind of does that but it's pretty
basic and there are many rooms for improvements.

------
arejaytee
Very nice, a history of when bookmarks were added would be a great addition.

------
dvduval
I tried to drag the bookmarklet, but didn't seem to work in Google Chrome?

~~~
sissbruecker
Thanks for checking it out dvduval. Just to make sure, you have to drag it to
the bookmark bar specifically, and not the toolbar on the right side of the
address field. Here is a (linkding unrelated) video that shows the general
idea: [https://www.youtube.com/watch?v=dauK_-
jcqP8](https://www.youtube.com/watch?v=dauK_-jcqP8)

I think by default Chrome hides the bookmark bar when you are on a page. You
can toggle the bookmark bar to be shown permanently from the Chrome Settings.
If you're on a Mac the shortcut is CMD+Shift+B, on Windows it should be
CTRL+Shift+B.

If that doesn't solve your problem - do you have any specific settings in
Chrome, like Javascript disabled?

------
bluejedi
hi.. nice project, i can not open the demo right now but seems like a spectre
css powered design, i really want to try the demo, guess i have to use play
with docker right now

~~~
sissbruecker
Hi! Yes it indeed uses Spectre CSS which was a very positive experience as
well. I actually donated a little to the author since it was exactly what I
was looking for.

Docker might seem intimidating at first, but it really isn't hard to get
started if you only want to spin up a container.

------
kubbity
Is there an account for demo?

~~~
sissbruecker
You can create your own account. There is a _Register_ link at the bottom
right of the login form.

FYI the email is not used, the registration completes immediately without
confirmation.

------
dang
This post got hit by a spam filter. Sorry about that; those are tuned more
aggressively for new accounts. Can you email us at hn@ycombinator.com so we
can give you some tips about how to repost it?

------
ablekh
Poor naming, in my opinion. Don't be surprised to receive a letter from
LinkedIn's legal team. I suggest renaming the project ASAP to avoid any
potential trademark-related issues.

~~~
choward
That's pretty ridiculous. If Microsoft complained about this I would lose a
lot of respect for them. This doesn't threaten linked in whatsoever. What
other names can't be used because linked in exists? The possibilities are
endless.

~~~
ablekh
Ridiculous? It seems that you are not familiar with "trademark likelihood of
confusion" and similar concepts (see the U.S. Trademark Act, especially 15
U.S.C. §1052).

~~~
choward
It's anecdotal but I wasn't confused at all.

~~~
ablekh
N=1 :-)

