mirror of
https://github.com/pinry/pinry.git
synced 2025-11-16 09:55:50 +01:00
Doc: Update doc for docker
This commit is contained in:
@@ -14,6 +14,7 @@ For more information visit [getpinry.com](https://getpinry.com).
|
||||
- Browser Extensions
|
||||
- Multi-user support
|
||||
- Both public and private boards
|
||||
- Works well with docker
|
||||
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -1,135 +0,0 @@
|
||||
Pinry Docker
|
||||
============
|
||||
|
||||
.. image:: https://travis-ci.org/pinry/docker-pinry.svg?branch=master
|
||||
:target: https://travis-ci.org/pinry/docker-pinry
|
||||
|
||||
A nice and easy way to get a Pinry instance up and running using docker. For
|
||||
help on getting started with docker see the `official getting started guide`_.
|
||||
For more information on Pinry and a demo check out it's `website`_.
|
||||
|
||||
|
||||
Getting Pinry Docker
|
||||
---------------------
|
||||
|
||||
Running this will get the latest version of pinry itself::
|
||||
|
||||
git clone https://github.com/pinry/pinry
|
||||
cd pinry
|
||||
./docker/bootstrap.sh
|
||||
|
||||
Now you can start your container by command like this::
|
||||
|
||||
# this is where your database and pins localted
|
||||
mkdir data
|
||||
# use absolute path for docker to avoid using default data-volume (we use directory instead)
|
||||
./docker/start_docker.sh `readlink -f data`
|
||||
|
||||
Please visit `http://your-ip` to visit your instance and register a new account, enjoy it.
|
||||
|
||||
|
||||
Configuring docker-pinry
|
||||
------------------------
|
||||
Enable signups for new users by editing ``pinry/local_settings.py``::
|
||||
|
||||
ALLOW_NEW_REGISTRATIONS = True
|
||||
|
||||
`Additional pinry configuration settings`_
|
||||
|
||||
Building docker-pinry again
|
||||
---------------------------
|
||||
|
||||
Running this will build you a docker image with the latest version of pinry::
|
||||
|
||||
./docker/build_docker.sh
|
||||
|
||||
|
||||
Running docker-pinry in manual way
|
||||
----------------------------------
|
||||
|
||||
Running the start command for the first time will setup your production secret
|
||||
key, database and static files. It is important that you decide what port you
|
||||
want and what location on the host machine you wish to store your files. If this
|
||||
is the only thing running on your system and you wish to make it public without
|
||||
a proxy then you can set ``-p=80:80``. The setting ``-p=10000:80`` assumes you
|
||||
are wanting to proxy to this instance using something like nginx. Also note that
|
||||
you must have your host mount directory created first (``mkdir -p /mnt/pinry``)
|
||||
|
||||
Then you have two choice to run docker-pinry
|
||||
|
||||
Fist one, with automaticlly configured default arguments::
|
||||
|
||||
./docker/start_docker.sh /mnt/pinry
|
||||
|
||||
|
||||
Second one, start docker by hand with customized arguments::
|
||||
|
||||
SETTINGS_PATH=$(readlink -f docker/pinry/local_settings.py) \
|
||||
DATA_PATH=$(readlink -f /mnt/pinry) \
|
||||
sudo docker run -d=true -p=10000:80 \
|
||||
-v=${DATA_PATH}:/data \
|
||||
-v=${SETTINGS_PATH}:/srv/www/pinry/pinry/settings/local_settings.py \
|
||||
pinry/pinry /scripts/start.sh
|
||||
|
||||
If it's the first run it'll take a few seconds but it will print out your
|
||||
container ID which should be used to start and stop the container in the future
|
||||
using the commands::
|
||||
|
||||
sudo docker start <container_id>
|
||||
sudo docker stop <container_id>
|
||||
|
||||
|
||||
Running docker-pinry with docker-compose
|
||||
-----------------------------------------
|
||||
|
||||
|
||||
Just config your ``docker-compose.yml`` and then run::
|
||||
|
||||
sudo pip install -U docker-compose
|
||||
sudo docker-compose --project-directory docker up -d
|
||||
|
||||
|
||||
Notes on the run commands
|
||||
`````````````````````````
|
||||
|
||||
* ``-v`` is the volume you are mounting ``-v=host_dir:docker_dir``
|
||||
* ``pinry/pinry`` is simply what I called my docker build of this image
|
||||
* ``-d=true`` allows this to run cleanly as a daemon, remove for debugging
|
||||
* ``-p`` is the port it connects to, ``-p=host_port:docker_port``
|
||||
* Follow comments in ``local_settings.py`` to understand how the site configured
|
||||
|
||||
Using docker-pinry
|
||||
------------------
|
||||
Open a browser to ``http://<YOUR-HOSTNAME>:10000`` and register. Replace YOUR-HOSTNAME with the name
|
||||
of the machine docker is running on, likely localhost.
|
||||
|
||||
You can map ``http://localhost:10000`` to your outer nginx for SSL or just change
|
||||
the default port-mapping to ``80:80`` to serve your site directly, just enjoy!
|
||||
|
||||
|
||||
Why include nginx and not just map to gunicorn directly?
|
||||
-----------------------------------------------------------
|
||||
|
||||
Because gunicorn/django can't serve static files very well and it is unwise to do
|
||||
so for security reasons. I built this so that people can have a full hosted
|
||||
solution in a container. If you have a host machine running nginx then of course
|
||||
there is no point to run nginx in the container as well, you can simply disable
|
||||
nginx, map gunicorn to a port and then set your host machine's nginx to display
|
||||
your media and static files since that directory is shared between the container
|
||||
and host.
|
||||
|
||||
|
||||
Why use sqlite3?
|
||||
----------------
|
||||
|
||||
Because it has a very low resource cost and most pinry websites are small
|
||||
personal ones. Why have a full on database for that? If you need more power
|
||||
than you can easily modify the `pinry/local_settings.py` to point to a
|
||||
stronger database solution.
|
||||
|
||||
|
||||
.. Links
|
||||
|
||||
.. _official getting started guide: http://www.docker.io/gettingstarted/
|
||||
.. _website: http://getpinry.com/
|
||||
.. _additional pinry configuration settings: https://github.com/pinry/pinry/blob/master/docker/pinry/local_settings.example.py
|
||||
71
docs/src/install-with-docker.md
Normal file
71
docs/src/install-with-docker.md
Normal file
@@ -0,0 +1,71 @@
|
||||
Pinry Docker
|
||||
================
|
||||
|
||||
A nice and easy way to get a Pinry instance up and running using docker. For
|
||||
help on getting started with docker see the official getting started guide at
|
||||
the end of this page.
|
||||
|
||||
|
||||
# Getting Pinry Docker
|
||||
|
||||
|
||||
Running this will get the latest version of pinry itself
|
||||
```
|
||||
git clone https://github.com/pinry/pinry
|
||||
cd pinry/docker
|
||||
./build_docker.sh
|
||||
```
|
||||
Now you can start your container by command like this
|
||||
```
|
||||
# this is where your database, local_settings and pins located
|
||||
mkdir data
|
||||
# use absolute path for docker to avoid using default data-volume (we use directory instead)
|
||||
./start_docker.sh `readlink -f data`
|
||||
```
|
||||
Please visit `http://your-ip` to visit your instance and register a new account, enjoy it.
|
||||
|
||||
|
||||
Configuring docker-pinry
|
||||
------------------------
|
||||
Enable signups for new users by editing `pinry/local_settings.py`
|
||||
```
|
||||
ALLOW_NEW_REGISTRATIONS = True
|
||||
```
|
||||
|
||||
# Building docker-pinry again (with latest version)
|
||||
|
||||
|
||||
Running this will build you a docker image with the latest version of pinry
|
||||
```
|
||||
git pull --rebase
|
||||
cd ./docker/
|
||||
./build_docker.sh
|
||||
```
|
||||
|
||||
# Backup
|
||||
Just copy `data` folder's content to an safe place, enjoy :)
|
||||
|
||||
|
||||
# Why include nginx and not just map to gunicorn directly?
|
||||
|
||||
Because gunicorn/django can't serve static files very well and it is unwise to do
|
||||
so for security reasons. I built this so that people can have a full hosted
|
||||
solution in a container. If you have a host machine running nginx then of course
|
||||
there is no point to run nginx in the container as well, you can simply disable
|
||||
nginx, map gunicorn to a port and then set your host machine's nginx to display
|
||||
your media and static files since that directory is shared between the container
|
||||
and host.
|
||||
|
||||
|
||||
# Why use sqlite3?
|
||||
|
||||
Because it has a very low resource cost and most pinry websites are small
|
||||
personal ones. Why have a full on database for that? If you need more power
|
||||
than you can easily modify the `data/local_settings.py` to point to a
|
||||
stronger database solution.
|
||||
|
||||
|
||||
# Links
|
||||
|
||||
+ [official getting started guide](http://www.docker.io/gettingstarted/)
|
||||
+ [additional pinry configuration settings](https://github.com/pinry/pinry/blob/master/pinry/settings/local_settings.example.py)
|
||||
@@ -17,6 +17,7 @@ nav:
|
||||
- Screenshots: 'screenshots.md'
|
||||
- Extensions: 'extensions.md'
|
||||
- Theories: 'theories.md'
|
||||
- InstallWithDocker: 'install-with-docker.md'
|
||||
- Development: 'development.md'
|
||||
- Docs: 'docs.md'
|
||||
- Passwords: 'passwords.md'
|
||||
|
||||
Reference in New Issue
Block a user