<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Richard<div class=""><br class=""></div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 08 Mar 2019, at 18:32, Richard Duivenvoorde <<a href="mailto:rdmailings@duif.net" class="">rdmailings@duif.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi Gents,<br class=""><br class="">Nathan, other then the Github repo and trying to run the available<br class="">docker I do not have so much superpowers (other then I could get into<br class="">the container for you and get the stuff out).<br class=""></div></div></blockquote><div><br class=""></div><div>@Richard we have a private repo *docker hub* repo that I think you are the owner of in the qgis organisation in docker hub. In that repo we have pushed occasional full image snapshots of everything in the plugins website except the actual plugin packages. Its this that I was asking you to give Nathan access to.</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">What we were discussing during this hackfest (after some issues with<br class="">availability of <a href="http://plugins.qgis.org" class="">plugins.qgis.org</a>) is to actually get a dedicated server<br class="">for <a href="http://plugins.qgis.org" class="">plugins.qgis.org</a>.<br class=""></div></div></blockquote><div><br class=""></div><div>:-( I prefer to properly set it up as a set of docker containers. Then spinning up an instance is a few clicks, we can load balance and other nice things in the future. We have all the tooling to do it with a repeatable workflow.  Anyway I guess it comes down to the person who will actually maintain things. Currently I guess it is me and you doing the sysadmin Richard and Ale maintaining the code. If we get more volunteers who want to maintain things and that want to use a particular implementation approach, using their preferred approach is fine for me.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="">And because (we think) more people could maybe develop/look into the<br class="">Django app we think about just deploy it as a wgsi-app working with a<br class="">local Postgresql db (so no more docker).</div></div></blockquote><div><br class=""></div><div>I think you are conflating two things here: deployment and development. We can already easily run a local non docker version e.g. for development (see notes in <a href="https://github.com/qgis/QGIS-Django/blob/master/readme.rst" class="">https://github.com/qgis/QGIS-Django/blob/master/readme.rst</a> - maybe they need a refresh?) so the current deployment approach should not be a blocker for developers to get on board. Maybe we just need to review the manual setup and run process notes to make sure the process is still described properly.</div><div><br class=""></div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""> Maybe on a cloud server, so<br class="">creating snapshots will then give us easy backups.<br class=""></div></div></blockquote><div><br class=""></div><div>But why not start by just deploying on a cloud server the existing image. I already get backups of the plugin zips and we can just add one small container to make PG backups on a cron. That would be the minimal amount of work to shift it to a new dedicated host.</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">This would hopefully open the door for other people to dive into the<br class="">QGIS-Django app, for example to upgrade it to work with python3 and a<br class="">newer version of Django (we now get a 'moderate' security warning on<br class="">github [0])<br class=""></div></div></blockquote><div><br class=""></div><div>Yes upgrading would be nice</div><div><br class=""></div><div>Regards</div><div><br class=""></div><div>Tim</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><br class="">We have to discuss this further.<br class=""><br class="">Regards,<br class=""><br class="">Richard<br class=""><br class=""><br class="">[0] <a href="https://github.com/qgis/qgis-django/network/alerts" class="">https://github.com/qgis/qgis-django/network/alerts</a><br class=""><br class=""><br class="">On 08/03/2019 13.05, Nathan Woodrow wrote:<br class=""><blockquote type="cite" class="">haha yes I know but for some reason I can't get docker to run well on<br class="">Windows at the moment for me, so I will just run it inside a vagrant box<br class="">because it's turtles all the way down.<br class=""><br class="">Richard,  could I get some details on how to set this up?<br class=""><br class="">On Fri, Mar 8, 2019 at 9:59 PM Tim Sutton <<a href="mailto:tim@kartoza.com" class="">tim@kartoza.com</a><br class=""><<a href="mailto:tim@kartoza.com" class="">mailto:tim@kartoza.com</a>>> wrote:<br class=""><br class="">    Hi <br class=""><br class=""><br class="">    Vagrant is so 2000s :-p Everything runs in docker. We have it in a a<br class="">    private docker hub repo as image contains a working db snapshot too..<br class=""><br class="">    Richard is the gate keeper for getting access to the hub repo after<br class="">    which you should be able to do:<br class=""><br class=""><br class="">    docker login<br class="">    docker run -ti -p 8099:80 \<br class="">            -d --restart=unless-stopped \<br class="">            --name="plugins" \<br class="">            -v ${PWD}/static:/home/plugins/QGIS-Django/qgis-app/static \<br class="">            -v ${PWD}/backups:/backups \<br class="">            -v ${PWD}/tmp:/tmp \<br class="">            -v ${PWD}/logs:/var/log/nginx \<br class="">            qgis/plugins:latest \<br class="">            supervisord -n<br class=""><br class="">    The volume mounts are not strictly necessary - we store teh actual<br class="">    plugin packages in a host directory instead of the container.<br class=""><br class="">    Regards<br class=""><br class="">    Tim<br class=""><br class=""><blockquote type="cite" class="">    On 08 Mar 2019, at 13:41, Nathan Woodrow <<a href="mailto:madmanwoo@gmail.com" class="">madmanwoo@gmail.com</a><br class="">    <<a href="mailto:madmanwoo@gmail.com" class="">mailto:madmanwoo@gmail.com</a>>> wrote:<br class=""><br class="">    Hey,<br class=""><br class="">    Is there any premade vagrant file I can use for the QGIS-Django<br class="">    project that already has everything set up?  <br class=""><br class="">    If not I can make one as I run Windows most of the time and I<br class="">    would like to have something set up I can just run up and shutdown<br class="">    nicely to match what we have running<br class="">    on <a href="https://plugins.qgis.org" class="">https://plugins.qgis.org</a> without having to install anything<br class="">    local on my windows machine.<br class=""><br class="">    Keen to see if others with more experience have done work in this<br class="">    area before so I don't have to reinvent it, but happy to do it if<br class="">    other haven't.<br class=""><br class="">    Regards,<br class="">    Nathan <br class="">    _______________________________________________<br class="">    QGIS-Developer mailing list<br class="">    <a href="mailto:QGIS-Developer@lists.osgeo.org" class="">QGIS-Developer@lists.osgeo.org</a> <<a href="mailto:QGIS-Developer@lists.osgeo.org" class="">mailto:QGIS-Developer@lists.osgeo.org</a>><br class="">    List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br class="">    Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" class="">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br class=""></blockquote><br class="">    —<br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class=""><br class="">    *Tim Sutton*<br class=""><br class="">    *Co-founder:* Kartoza<br class="">    *Ex Project chair:* <a href="http://QGIS.org" class="">QGIS.org</a> <<a href="http://QGIS.org" class="">http://QGIS.org</a>><br class=""><br class="">    Visit <a href="http://kartoza.com" class="">http://kartoza.com</a> <<a href="http://kartoza.com/" class="">http://kartoza.com/</a>> to find out about<br class="">    open source:<br class=""><br class="">    Desktop GIS programming services<br class="">    Geospatial web development<br class="">    GIS Training<br class="">    Consulting Services<br class=""><br class="">    *Skype*: timlinux <br class="">    *IRC:* timlinux on #qgis at <a href="http://freenode.net" class="">freenode.net</a> <<a href="http://freenode.net" class="">http://freenode.net</a>><br class=""><br class=""><br class="">_______________________________________________<br class="">QGIS-Developer mailing list<br class=""><a href="mailto:QGIS-Developer@lists.osgeo.org" class="">QGIS-Developer@lists.osgeo.org</a><br class="">List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer<br class="">Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer<br class=""><br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-weight: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: normal; text-align: center;" class=""><span>—</span></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-position: normal; font-variant-caps: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; letter-spacing: normal; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; line-height: normal; text-align: center;" class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><br class="Apple-interchange-newline" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><span><span><span><span><span><span><span><span><span><span><img apple-inline="yes" id="341B9BD1-DC56-422C-A50B-B6918F01012A" src="cid:1A5DF6DE-E302-4C28-BFBD-29663CBF1351" class=""></span><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class="Apple-interchange-newline"><br class="Apple-interchange-newline"><br class="Apple-interchange-newline"><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Tim Sutton</b></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Co-founder:</b><span class="Apple-converted-space"> </span>Kartoza</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Ex Project chair:</b><span style="font-weight: normal;" class=""><span class="Apple-converted-space"> </span><a href="http://QGIS.org" class="">QGIS.org</a></span></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Visit <a href="http://kartoza.com/" class=""><span style="-webkit-text-stroke-color: rgb(71, 135, 255);" class="">http://kartoza.com</span></a> to find out about open source:</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Desktop GIS programming services</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Geospatial web development</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class="">GIS Training</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class="">Consulting Services</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0); min-height: 14px;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">Skype</b>: timlinux </div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: center; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: initial; text-decoration: none; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; margin: 0px; line-height: normal; -webkit-text-stroke-color: rgb(0, 0, 0);" class=""><b class="">IRC:</b><span class="Apple-converted-space"> </span>timlinux on #qgis at <a href="http://freenode.net" class="">freenode.net</a></div>
</span></span></span></span></span></span></span></span></span></span></div>
</div><br class=""></div></body></html>