From b349bb2090bca7c3b4c7aec2663304a3b4bb6029 Mon Sep 17 00:00:00 2001 From: Isaac Bythewood Date: Thu, 10 May 2012 04:51:22 +0000 Subject: [PATCH] Updating the README with new sections and information. --- README.md | 79 +++++++++++++++++++++++++++++++++++++++++++----------- logo.png | Bin 0 -> 3972 bytes 2 files changed, 63 insertions(+), 16 deletions(-) create mode 100644 logo.png diff --git a/README.md b/README.md index fcfe3bb..a33a3db 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,40 @@ -# Pinry +# ![Pinry](https://github.com/overshard/pinry/raw/master/logo.png) -Pinry is a self-hostable [Pinterest][0] and [Wookmark][1] clone. +Pinry is a private, self-hosted, [Pinterest][0] or [Wookmark][1] clone build on +top of Django and other open web technologies. ![Pinry Screenshot](https://github.com/overshard/pinry/raw/master/screenshot.png) + ## Why? -Because I don't like sharing. I would use these services to store a lot of -images and data that isn't necessarily personal but that I don't actually want -to share or deal with the possibility of having it taken down by a DMCA notice. -My use of Pinterest/Wookmark boils down to having personal board for things I -want to remember or keep for inspiration. +Mostly because I don't like sharing, I use pinup boards for personal inspiration +boards. Also if I use a public platform like Pinterest or Wookmark then my pins +run the risk of getting a DMCA take down notice. I might not even be able to +pin something at all with websites now blocking tools like this. I rather +bypass all these risks and just host it myself. + ## Plans Some features that I want to implement, if you know how to implement them then please do them for me! I'm very pull-request friendly and will not yell at you -for bad code, I'll simply work with you to improve it. +for bad code, I'll work with you to improve it. + Add non-image URL support, take "screenshot" of page as a thumbnail. + Create a bookmarklet for quick saving. + Manual and automatic tagging via description, image alt tags and whatever else I can scrape. + Statistics page with graphs for image views, what times of day have the most posts, etc. + ## Getting Started +Pinry has three different customizable configurations: + +### Development + Have virtualenv and pip installed. You may also need to have the build -dependencies for PIL installed. (If you are on Ubuntu you can do this by typing -"sudo apt-get build-dep python-imaging".) +dependencies for PIL installed. $ git clone git://github.com/overshard/pinry.git $ cd pinry @@ -37,17 +44,57 @@ dependencies for PIL installed. (If you are on Ubuntu you can do this by typing $ bin/python manage.py migrate $ bin/python manage.py runserver -Following this will get you a development server up and running. If you want a -production server [Google around][2] for more information on running Django in a -production environment and create a "pinry/settings/production.py" file. +Note: If you are on Ubuntu 12.04 there is a bug in PIL that causes it to not +build in JPG and PNG support. You'll need to follow all the steps above except +before `virtualenv .` run `sudo apt-get install python-imaging` and instead of +`virtualenv .` run `virtualenv --system-site-packages .`. On older versions of +Ubuntu and older Linux distributions you'll need to install PIL dependencies. +On Ubuntu this can be done with `sudo apt-get build-dep python-imaging`. -## Jenkins Build Status -For build information on the latest commit head over to -[Pinry on my Jenkins server][3]. +### Jenkins + +If you want to use Pinry with your own Jenkins server I've already setup all of +the settings on Pinry, just follow the instructions starting at section 3 on the +official [Django Jenkins Tutorial][4]. + +A quick tip, when you get to the `Add build step -> Execute shell` step instead +of using his example use: + + virtualenv --system-site-packages . + bin/pip install -r requirements/jenkins.txt + bin/python manage.py jenkins --settings=pinry.settings.jenkins + +As noted in development be sure you have PIL installed or it's build +dependencies. + +### Production + +If you want a production server [Google around][2] for more information on +running Django in a production environment and create a +`pinry/settings/production.py` file. I don't cover this because there are +hundreds of different ways to deploy a Django project and everyone has their own +preference. + + +## Build Status + +For build information on the latest commit head over to my [Jenkins server][3]. +You'll get useful information on if all my tests are passing, my test coverage, +and if I'm conforming with pylint and pep8 standards. + + +## As Seen On... + + + [USA Today](http://www.usatoday.com/tech/products/story/2012-04-27/pinterest-pinry-private-pinning/54584308/1) + + [Hacker News](http://news.ycombinator.com/item?id=3895618) + + [The Next Web](http://thenextweb.com/apps/2012/04/27/pinry-is-a-self-hosted-version-of-pinterest-that-gives-you-full-control-of-your-pins/) + + [Python Weekly](http://us2.campaign-archive2.com/?u=e2e180baf855ac797ef407fc7&id=1f8c766c90&e=292d864a00) + + [Pycoder's Weekly](http://us4.campaign-archive1.com/?u=9735795484d2e4c204da82a29&id=4f9b37c501) [0]: http://pinterest.com/ [1]: http://www.wookmark.com/ [2]: https://www.google.com/search?q=deploy+django+production [3]: http://jenkins.bythewood.me/job/pinry/ +[4]: https://sites.google.com/site/kmmbvnr/home/django-jenkins-tutorial diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e9ed14fe12ee86d4e03fb448bc07037c87481a2e GIT binary patch literal 3972 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 e-g8SB{Qm-rdC}CDnJ+>B0000