Changeset - 9b6f573ebffd
ennstatus/__init__.py
Show inline comments
 
@@ -9,34 +9,34 @@
 
# This program is distributed in the hope that it will be useful,
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
# GNU General Public License for more details.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
import os.path
 
import json
 

	
 
from flask import Flask, render_template
 
from flask.ext.bootstrap import Bootstrap
 
from flask.ext.wtf import CsrfProtect
 
from flask.ext.moment import Moment
 
from flask_bootstrap import Bootstrap
 
from flask_wtf import CSRFProtect
 
from flask_moment import Moment
 

	
 
from werkzeug.contrib.fixers import ProxyFix
 

	
 
import gnupg
 

	
 
bootstrap = Bootstrap()
 
csrf = CsrfProtect()
 
csrf = CSRFProtect()
 
moment = Moment()
 

	
 
config_file = os.path.abspath('config.json')
 

	
 

	
 
def create_app():
 

	
 
    app = Flask(__name__)
 

	
 
    import ennstatus.config as config
 
    config.init_app(app)
 

	
ennstatus/api/auth.py
Show inline comments
 
@@ -6,24 +6,24 @@
 
# the Free Software Foundation, either version 3 of the License, or
 
# (at your option) any later version.
 
#
 
# This program is distributed in the hope that it will be useful,
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
# GNU General Public License for more details.
 
#
 
# You should have received a copy of the GNU General Public License
 
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 

	
 
from flask import current_app
 
from flask.ext.httpauth import HTTPDigestAuth
 
from flask_httpauth import HTTPDigestAuth
 

	
 
httpauth = HTTPDigestAuth()
 

	
 

	
 
@httpauth.get_password
 
def get_pw(username):
 

	
 
    if username in current_app.config['ENNSTATUS_SERVERS']:
 
        return current_app.config['ENNSTATUS_SERVERS'][username]['PASSWORD']
 

	
 
    return None
ennstatus/static/images/partners/Logo-Piratepartei2014.png
Show inline comments
 
binary diff not shown
Show images
ennstatus/static/images/partners/logo-c3l.png
Show inline comments
 
binary diff not shown
Show images
ennstatus/templates/donate/index.html
Show inline comments
 
@@ -11,125 +11,125 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Donate" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Support.png') }}" class="img-responsive img-rounded center-block" alt="WhoIs" width="160"></img>
 
    <div class="text-center">
 
      <h2>Support us!</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <div class="jumbotron">
 
      <h2>Take action for a <strong>#FreeInternet</strong>! Support us today!</h2>
 
      <p>As a non-profit organization we are 100% community funded. Donations from our members and supporters will be used to <strong>power Tor nodes</strong>, <strong>print flyers and posters</strong> or cover administrative charges.</p>
 
      <span class='highlighted-label'><a href="{{ url_for('donate.received') }}"><span class="label label-info">Donation history</span></a></span>
 
      <span class='highlighted-label'><a href="{{ url_for('root.bridgeprogram') }}"><span class="label label-primary">Adopt a Tor Bridge</span></a></span>
 
    </div>
 
  </div>
 
  <div class="col-md-12">
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Wire Transfer </h3>
 
        </center>
 
        <div class="well well-sm">
 
          <p>
 
            <strong>Account holder:</strong> Frënn vun der Ënn A.S.B.L.<br>
 
            <strong>BIC/SWIFT:</strong> BCEELULLXXX<br>
 
            <strong>IBAN:</strong> LU65 0019 4055 6782 7000<br>
 
          </p>
 
       </div>
 
       <div class="well well-sm">
 
       <p>
 
         <strong>Account holder:</strong> Chaos Computer Club Lëtzebuerg A.S.B.L.<br>
 
         <strong>BIC/SWIFT:</strong> BCEELULLXXX<br>
 
         <strong>IBAN:</strong> LU29 0019 2855 3890 4000<br>
 
         <strong>Subject:</strong> Donation FVDE<br>
 
       </p>
 
       </div>
 
      </div>
 
    </div>
 
    <div class="col-md-4 clearfix">
 
    <div class="col-xs-12 col-sm-6 col-md-4 clearfix">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>SnailMail</h3>
 
        </center>
 
        <div class="well well-sm">
 
           <address>
 
             <strong>Frënn vun der Ënn, ASBL</strong><br>
 
                    {{ config['ENNSTATUS_ADDRESS_CO'] }}<br>
 
                    {{ config['ENNSTATUS_HOUSE_NAME'] }}<br>
 
                    {{ config['ENNSTATUS_STREET'] }}<br>
 
                    {{ config['ENNSTATUS_POSTAL_CODE'] }}, {{ config['ENNSTATUS_CITY'] }}<br>
 
                    {{ config['ENNSTATUS_COUNTRY'] }}, {{ config['ENNSTATUS_CONTINENT'] }}<br>
 
          </address>
 
        </div>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Bitcoin</h3>
 
        </center>
 
        <div class="well well-sm">
 
         <center>
 
          <p>
 
            <b>Bitcoin Address:</b> 1EYZCq2ZL6chWXYYkJoDo7fz39UC7do5cC
 
            <a href="bitcoin:1EYZCq2ZL6chWXYYkJoDo7fz39UC7do5cC?label=FVDE"><img src="{{ url_for('static', filename='images/btc.png') }}" width="200"></a>
 
          </p>
 
         </center>
 
        </div>
 
      </div>
 
    </div>
 
  </div>
 
  <div class="col-md-12">
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>PayPal <small><span class="label label-danger">high fees</span></small></h3>
 
          <div class="well well-sm">
 
            <p>Use your existing PayPal account or check-out as guest. (Credit cards accepted)</p>
 
            <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
 
      		    <input type="hidden" name="cmd" value="_s-xclick">
 
    	  	    <input type="hidden" name="hosted_button_id" value="JKNKAGHS65QN4">
 
    		      <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
 
    		      <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
 
            </form>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Flattr</h3>
 
          <div class="well well-sm">
 
            <p>Flattr us!</p>
 
            <a href="https://flattr.com/submit/auto?user_id=FVDE&url=https%3A%2F%2Fenn.lu/donate/flattr" target="_blank">
 
              <img src="https://button.flattr.com/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0"></img>
 
            </a>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
 
    <div class="col-md-4">
 
    <div class="col-xs-12 col-sm-6 col-md-4">
 
      <div class="thumbnail">
 
        <center>
 
          <h3>Patreon</h3>
 
          <div class="well well-sm">
 
            <p>Support us!</p>
 
            <a href="https://www.patreon.com/FVDE?utm_medium=social&ty=h&utm_campaign=creatorshare" target="_blank">
 
              <img src="https://s3.amazonaws.com/patreon_public_assets/toolbox/patreon.png" alt="Patreon" title="Patreon" border="0"></img>
 
            </a>
 
          </div>
 
        </center>
 
      </div>
 
    </div>
ennstatus/templates/root/about.html
Show inline comments
 
@@ -11,25 +11,25 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Who we are" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Who we are</h2>
 
    <h3>Organization</h3>
 
    <p class="lead">
 
      <i>Frënn vun der Ënn a.s.b.l.</i> is a non-profit organization based in Luxembourg (EU).
 
      It has been founded by members of <i>Chaos Computer Club Lëtzebuerg a.s.b.l.</i> in 2013.
 
    </p>
 
    <p>
 
      As defined in the statutes (see below), the goals of our organization are:
 
      <ul>
 
        <li>defending civil rights, especially on the internet</li>
 
        <li>defending the right to anonymity on the internet by supporting Tor Project Inc.</li>
 
        <li>fighting against censorship and ensuring free access to information</li>
ennstatus/templates/root/abuse.html
Show inline comments
 
@@ -11,25 +11,25 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Abuse" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Abuse handling</h2>
 
    <p class="lead">We take our mission very seriously and carefully examine abuse cases.</p>
 
    <p>If you have any question regarding abusive traffic emanating from one of our Tor Exit nodes, don't hesitate to contact our abuse departement. Please make sure to include the following details in your enquiry:</p>
 
    <ul>
 
      <li>the offending IP address'</li>
 
      <li>the type &amp; address' of the abused service(s)</li>
 
      <li>your contact information</li>
 
    </ul><br>
 
    <p>
 
    For transparency reasons we publish monthly <a href="//{{ wiki_url }}/doku.php?id=abuse_statistics" target="blank"><strong>abuse mail statistics</strong></a>.
 
    </p>
 
    <h3>Abuse contact</h3>
ennstatus/templates/root/bridgeprogram.html
Show inline comments
 
@@ -13,34 +13,32 @@
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% import 'bootstrap/wtf.html' as wtf %}
 

	
 
{% set title = "Bridge Program" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-10">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>Bridge Program</h2>
 
    <p class="lead">Fight censorship! Our bridge program allows you to support the Tor network by adopting a Tor bridge.</p>
 
    <p> Rather than making a single donation, you can now fund a Tor bridge on your own. Bridges are an important element in the Tor network because they allow people to use the network even if the direct acces to its entry-nodes is blocked in their country. This is mainly the case for people living under oppressive regimes. <a href="https://www.torproject.org/docs/bridges" target="blank"><strong>Read more about Tor bridges</strong></a></p>
 
    <p>With a recurring contribution of 3 EUR/month (duration min. 12 months) you can help us keep such a bridge up and running. The servers for this project are located in Luxembourg.</p>
 
    <p>As a partner in our project you can choose the nickname of your bridge and follow it on <a href="{{ url_for('status.index') }}">Ënnstatus</a>, our self-made information-panel.</p>
 
  </div>
 
  <div class="col-md-1">
 
  </div>
 
  <div class="col-md-offset-1 col-md-6">
 
  <div class="col-sm-12 col-md-offset-1 col-md-6">
 
    <h2>Apply for the bridge program</h2>
 
    <form method="post" class="form form-horizontal" role="form">
 
      {{ form.hidden_tag() }}
 
      {{ wtf.form_field(form.fullname, form_type='horizontal') }}
 
      {{ wtf.form_field(form.email, form_type='horizontal') }}
 
      {{ wtf.form_field(form.bridgename, form_type='horizontal') }}
 
      <div class="form-group {% if form.duration.errors %} has-error {% endif %} required">
 
        {{ form.duration.label(class_='control-label col-lg-2') }}
 
        <div class="col-lg-10">
 
        {% for field in form.duration %}
 
          <div class="radio">
 
            {{ field() }}
 
@@ -88,19 +86,19 @@
 
              <p class="help-block">{{ error }}</p>
 
            {% endfor %}
 
          </div>
 
        {% endif %}
 
      </div>
 
      <div class="form-group">
 
        <div class="col-lg-offset-2 col-lg-10">
 
          {{ form.submit(class_='btn btn-enn') }}
 
        </div>
 
      </div>
 
    </form>
 
  </div>
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-5">
 
    <h3>More information</h3>
 
    <p>You want to know more about our work?</p>
 
    <p>Our <a href="//wiki.enn.lu/doku.php?id=user:kahpa">bridge operator</a> will give you further information about the project.</p>
 
    <p><strong>Get in touch:</strong> <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:bridges@enn.lu">bridges@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?op=get&search=0x3F917F479C5D0F3B">0x9C5D0F3B</a></p>
 
  </div>
 
{% endblock %}
ennstatus/templates/root/contact.html
Show inline comments
 
@@ -11,50 +11,47 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Contact" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-4">
 
    <img src="{{ url_for('static', filename='images/Contact.png') }}" class="img-responsive img-rounded center-block" alt="WhoIs" width="160"></img>
 
    <div class="text-center">
 
      <h2>Contact</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>General</h2>
 
    <p>Please mail all general inquiries to:</p>
 
    <address>
 
      <strong>Frënn vun der Ënn, ASBL</strong><br>
 
        {{ config['ENNSTATUS_ADDRESS_CO'] }}<br>
 
        {{ config['ENNSTATUS_HOUSE_NAME'] }}<br>
 
        {{ config['ENNSTATUS_STREET'] }}<br>
 
        {{ config['ENNSTATUS_POSTAL_CODE'] }}, {{ config['ENNSTATUS_CITY'] }}<br>
 
        {{ config['ENNSTATUS_COUNTRY'] }}, {{ config['ENNSTATUS_CONTINENT'] }}
 
        <br>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:info@enn.lu">info@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Website"><span class="glyphicon glyphicon-cloud"></span></abbr> : <a href="//enn.lu/">enn.lu/</a> <strong>or</strong> <a href="//{{ config['ENNSTATUS_ONION_ADDRESS'] }}/" target="_blank">{{ config['ENNSTATUS_ONION_ADDRESS'] }}</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : {{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
    <h2>Abuse</h2>
 
    <p>For further details about abuse handling, have a look over <a href="{{ url_for('root.abuse') }}">here</a>.</p>
 
    <address>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:abuse@enn.lu">abuse@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : </strong>{{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
    <h2>Press</h2>
 
    <p>Press related inqueries should go to:</p>
 
    <address>
 
      <abbr title="E-Mail"><span class="glyphicon glyphicon-envelope"></span></abbr> : <a href="mailto:press@enn.lu">press@enn.lu</a> <span class="glyphicon glyphicon-lock"></span> GPG: <a href="http://keyserver.cypherpunk.lu:11371/pks/lookup?search=info@enn.lu&op=vindex" target="_blank">0x02225522</a><br>
 
      <abbr title="Phone"><span class="glyphicon glyphicon-earphone"></span></abbr> : </strong>{{ config['ENNSTATUS_PHONE_NUMBER'] }}<br>
 
    </address>
 

	
 
  </div>
 
{% endblock %}
ennstatus/templates/root/ennstatus.html
Show inline comments
 
@@ -11,33 +11,33 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "About Ënnstatus" %}
 

	
 
{% block content %}
 
  <div class="col-md-offset-1 col-md-11">
 
  <div class="col-sm-12 col-md-offset-1 col-md-11">
 
    <h2>About Ënnstatus</h2>
 
    <div class="col-md-6">
 
    <div class="col-sm-12 col-md-6">
 
      <h3>API</h3>
 
      <p>We provide a <a href="http://json.org/">JSON</a> API for exporting the current status of our servers</p>
 
      <h4>Exporting all servers</h4>
 
      <p>Under the endpoint <a href="{{ url_for('api.export') }}">/api/export</a>, you can find an export of all our servers</p>
 
    </div>
 
    <div class="col-md-6">
 
    <div class="col-sm-12 col-md-6">
 
      <h3>Used libraries:</h3>
 
      <ul>
 
        <li><a href="http://flask.pocoo.org/">Flask</a></li>
 
        <li><a href="https://github.com/mbr/flask-bootstrap">Flask-Bootstrap</a></li>
 
        <li><a href="http://flask-httpauth.readthedocs.org/en/latest/">Flask-HTTPAuth</a></li>
 
        <li><a href="http://packages.python.org/Flask-Mail/">Flask-Mail</a></li>
 
        <li><a href="http://https://github.com/miguelgrinberg/flask-moment/">Flask-Moment</a></li>
 
        <li><a href="https://flask-wtf.readthedocs.org/en/latest/">Flask-WTF</a></li>
 
        <li><a href="https://pypi.python.org/pypi/pygeoip/">pygeoip</a></li>
 
        <li><a href="https://pypi.python.org/pypi/jsonschema/">jsonschema</a></li>
 
        <li><a href="https://pypi.python.org/pypi/strict-rfc3339">strict-rfc3339</a></li>
 
        <li><a href="http://docs.python-requests.org/en/latest/">requests</a></li>
ennstatus/templates/root/index.html
Show inline comments
 
@@ -16,55 +16,53 @@
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Index" %}
 

	
 
{% block styles %}
 
  {{ super() }}
 
  <link rel="stylesheet" href="{{ url_for('static', filename='js/video.js/dist/video-js.min.css') }}">
 
{% endblock %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
    <img class="img-rounded center-block" alt="FVDE_Logo" src="{{ url_for('static', filename='images/logo/FVDE_logo_resize.png') }}"></img>
 
  <div class="col-xs-12 col-sm-6 col-md-4">
 
    <img class="img-responsive img-rounded center-block" alt="FVDE_Logo" src="{{ url_for('static', filename='images/logo/FVDE_logo_resize.png') }}"></img>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-xs-12 col-sm-6 col-md-8">
 
    <div class="jumbotron">
 
      <h2>Frënn vun der Ënn A.S.B.L.</h2>
 
	    <p><em>Luxembourg based non-profit organization defending civil rights on the internet.</em></p>
 
      <p>We provide high-bandwidth Tor nodes all over the world to protect <strong>online privacy</strong>, <strong>anonymity</strong>, <strong>freedom of speech</strong> and fight <strong>censorship</strong>!
 
      </p>
 
      <span class="highlighted-label"><a href="{{ url_for('root.member') }}"><span class="label label-success">Become a Member</span></a></span>
 
      <span class="highlighted-label"><a href="{{ url_for('donate.index') }}"><span class="label label-primary">Donate</span></a></span>
 
      <span class="highlighted-label pull-right"><a href="https://twitter.com/FrennVunDerEnn" target="blank"><span class="label label-info">@FrennVunDerEnn</span></a></span>
 
    </div>
 
  </div>
 
  <div class="col-md-1">
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-offset-1 col-md-8">
 
    <blockquote>
 
      <p>
 
        <em>I support <abbr title="Frënn vun der Ënn a.s.b.l.">FVDE</abbr> because even small organizations can contribute to protect fundamental civil rights. This noble goal can be pursued by making use of technology and putting knowledge to the service of users who want to maintain their privacy.</em>
 
        <footer>Georges, Teacher</footer>
 
      </p>
 
    </blockquote>
 
  </div>
 
  <div class="col-md-3">
 
  <div class="col-sm-12 col-md-3">
 
    <blockquote>
 
      <a href="https://vimeo.com/160952562" target="blank"><h2 class="text-center">Privacy is the right to a free mind!</h2></a>
 
      <footer>Edward J. Snowden</footer>
 
    </blockquote>
 
  </div>
 
  <div class="col-md-6">
 
  <div class="col-sm-12 col-md-6">
 
    <div class="embed-responsive embed-responsive-16by9">
 
      <video id="tor-animation" width="560" height="315" controls preload="none" class="video-js vjs-default-skin vjs-big-play-centered embed-responsive-item" data-setup="">
 
        <source src="{{ url_for('static', filename='videos/Tor_Animation.webm') }}" type='video/webm' />
 
        <source src="{{ url_for('static', filename='videos/Tor_Animation.mp4') }}" type='video/mp4' />
 

	
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.de.vtt') }}" srclang="de" label="Deutsch">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.en.vtt') }}" srclang="en" label="English">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.fr.vtt') }}" srclang="fr" label="Français">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ar.vtt') }}" srclang="ar" label="العربية">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ca.vtt') }}" srclang="ca" label="Català">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.es.vtt') }}" srclang="es" label="Español">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.eu.vtt') }}" srclang="eu" label="Euskal">
 
@@ -76,25 +74,25 @@
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.lv.vtt') }}" srclang="lv" label="Latvijā">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.pl.vtt') }}" srclang="pl" label="Polskie">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.pt.vtt') }}" srclang="pt" label="Português">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.ru.vtt') }}" srclang="ru" label="русский">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.sq.vtt') }}" srclang="sq" label="Shqiptar">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.sv.vtt') }}" srclang="sv" label="Svenska">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.tl-PH.vtt') }}" srclang="tl-PH" label="Fillipino">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.zh-CN.vtt') }}" srclang="zh-CN" label="Chinese (China)">
 
        <track src="{{ url_for('static', filename='videos/subtitles/Tor_animation.zh-HK.vtt') }}" srclang="zh-HK" label="Chinese (Hongkong)">
 
      </video>
 
    </div>
 
  </div>
 
  <div class="col-md-6">
 
  <div class="col-sm-12 col-md-6">
 
      <p class=lead>
 
        <br>
 
        Tor is free software and an open network that helps you defend against network surveillance and preserve your personal freedom and privacy on the Internet.
 
      </p>
 
      <p>
 
        By bouncing your communications around a distributed network of relays run by volunteers all around the world, it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location.
 
      </p>
 
      <span class="highlighted-label-big"><a href="http://torproject.lu" target="blank"><span class="label label-info">Learn more about Tor</span></a></span>
 
  </div>
 
{% endblock %}
 

	
 
{% block scripts %}
ennstatus/templates/root/member.html
Show inline comments
 
@@ -11,31 +11,31 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Member" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-sm-12 col-md-4">
 
    <img src="{{ url_for('static', filename='images/Partners.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Join</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Membership</h2>
 
    <p class="lead">Joining our organization has several advantages.</p>
 
    <p>As an active member you get to know the people behind <abbr title="Frënn vun der Enn a.s.b.l.">FVDE</abbr> and you can join us on our weekly meetings (online or AFK).
 
       You'll have the possibility to actively contribute to our projects,
 
       bring in new ideas, and eventually become a part of our core team.</p>
 

	
 
    <p>We are a dynamic group of people with different backgrounds and skills
 
       who constantly learn from each other. Most of us have a broader
 
       knowledge in Tor, network security and FOSS in general,
 
       but our activities aren't limited to technical questions alone.
 
       Regularly we meet to discuss political or philosophical questions or
 
       just have a convivial evening.</p>
ennstatus/templates/root/mirrors.html
Show inline comments
 
@@ -19,31 +19,31 @@
 

	
 
{% set title = "Partners" %}
 

	
 
{% if '.onion' in request.url_root %}
 
  {% set globe_url = config['ENNSTATUS_GLOBE_ONION_ADDRESS'] %}
 
{% elif '.bit' in request.url_root %}
 
  {% set globe_url = config['ENNSTATUS_GLOBE_BIT_ADDRESS'] %}
 
{% else %}
 
  {% set globe_url = "globe.enn.lu" %}
 
{% endif %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Services.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Mirrors</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Mirrors</h2>
 
    <p class="lead">In addition to our Tor relays we are providing mirrors for some popular services.</p>
 
    <dl>
 
      <dt><a href="http://torproject.lu" target="_blank">torproject.lu</a></dt>
 
      <dd>This is a mirror of the the Tor Project's main website torproject.org</dd>
 
      <br>
 
      <dt><a href="http://tails.c3l.lu/" target="_blank">tails.enn.lu</a></dt>
 
      <dd>A Tails Download mirror. Tails is a live operating system, that you can start on almost any computer from a DVD, USB stick, or SD card. It aims at preserving your privacy and anonymity. <a href="https://tails.boum.org/" target="blank">Learn more about Tails</a></dd>
 
      <br>
 
      <dt><a href="//{{ globe_url }}" target="_blank">globe.enn.lu</a></dt>
 
      <dd>Globe is a Tor relay and bridge explorer.</dd>
 
    </dl>
ennstatus/templates/root/partners.html
Show inline comments
 
@@ -11,52 +11,48 @@
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
   GNU General Public License for more details.
 

	
 
   You should have received a copy of the GNU General Public License
 
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
#}
 

	
 
{% extends "base.html" %}
 

	
 
{% set title = "Partners" %}
 

	
 
{% block content %}
 
  <div class="col-md-4">
 
  <div class="col-md-4 visible-md visible-lg">
 
    <img src="{{ url_for('static', filename='images/Partners.png') }}" class="img-responsive img-rounded center-block" alt="Partners" width="160"></img>
 
    <div class="text-center">
 
      <h2>Partners</h2>
 
    </div>
 
  </div>
 
  <div class="col-md-8">
 
  <div class="col-sm-12 col-md-8">
 
    <h2>Partners</h2>
 
    <p class="lead">We are constantly looking for new partners who want join us in our endevaour for a free Internet. At the moment we are beeing supported by the following organizations:</p>
 
    <div class="row">
 
      <div class="col-md-4">
 
        <a href="https://edri.org" target="_blank"><img src="{{ url_for('static', filename='images/partners/edri_logo_web.png') }}" alt="European Digital Rights" class="img-responsive"></img></a>
 
      <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://edri.org" target="_blank"><img src="{{ url_for('static', filename='images/partners/edri_logo_web.png') }}" alt="European Digital Rights" class="img-responsive center-block"></img></a>
 
      </div>
 
      <div class="col-md-4">
 
        <a href="http://c3l.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/logo-c3l.png') }}" alt="Chaos Computer Club Lëtzebuerg" class="img-responsive"></img></a>
 
      </div>
 
       <div class="col-md-4">
 
        <a href="https://torservers.net" target="_blank"><img src="{{ url_for('static', filename='images/partners/torservers.png') }}" alt="Zwiebelfreunde eV" class="img-responsive"></img></a>
 
      <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="http://c3l.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/logo-c3l.png') }}" alt="Chaos Computer Club Lëtzebuerg" class="img-responsive center-block"></img></a>
 
      </div>
 
    </div>
 
    <div class="row">
 
     <div class="col-md-4">
 
        <a href="https://piratepartei.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/Logo-Piratepartei2014.png') }}" alt="Pirate Partei" class="img-responsive"></img></a>
 
       <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://torservers.net" target="_blank"><img src="{{ url_for('static', filename='images/partners/torservers.png') }}" alt="Zwiebelfreunde eV" class="img-responsive center-block"></img></a>
 
      </div>
 
     <div class="col-xs-12 col-sm-6 col-md-4">
 
        <a href="https://piratepartei.lu" target="_blank"><img src="{{ url_for('static', filename='images/partners/Logo-Piratepartei2014.png') }}" alt="Pirate Partei" class="img-responsive center-block"></img></a>
 
     </div>
 
     <div class="col-md-4">
 
       <a href="https://flokinet.is/" target="_blank"><img src="{{ url_for('static', filename='images/partners/flokinet.png') }}" alt="FlokiNET" class="img-responsive"></img></a>
 
     </div>
 
     <div class="col-md-4">
 
     <div class="col-xs-12 col-sm-6 col-md-4">
 
       <a href="https://flokinet.is/" target="_blank"><img src="{{ url_for('static', filename='images/partners/flokinet.png') }}" alt="FlokiNET" class="img-responsive center-block"></img></a>
 
     </div>
 
    </div>
 
    <h3>Becoming a Partner?</h3>
 
    <p>We'd be glad to see you or your organization/company as our partner. If you are interested in supporting us by one of the following means, don't hesitate to <a href="{{ url_for('root.contact') }}">contact</a> us.
 
       <ul>
 
         <li>Traditional donations to run Tor exit nodes</li>
 
         <li>Sponsoring Servers, Bandwidth or equipment</li>
 
         <li>Helping us to spread the word about Tor and Internet privacy</li>
 
       </ul>
 
    </p>
 
  </div>
 
{% endblock %}
requirements.txt
Show inline comments
 
#
 
# This file is autogenerated by pip-compile
 
# Make changes in requirements.in, then run this to update:
 
#
 
#    pip-compile requirements.in
 
#
 
Babel==2.2.0
 
click==6.3
 
dominate==2.1.17          # via flask-bootstrap
 
Flask-Bootstrap==3.3.5.7
 
Flask-HTTPAuth==2.7.2
 
Flask-Moment==0.5.1
 
Flask-WTF==0.12
 
Flask==0.10.1             # via flask-bootstrap, flask-httpauth, flask-moment, flask-wtf
 
blinker==1.4              # via flask-mail
 
click==6.7
 
dominate==2.3.1           # via flask-bootstrap
 
Flask-Bootstrap==3.3.7.1
 
Flask-HTTPAuth==3.2.3
 
Flask-Mail==0.9.1
 
Flask-Moment==0.5.2
 
Flask-WTF==0.14.2
 
Flask==0.12.2             # via flask-bootstrap, flask-httpauth, flask-mail, flask-moment, flask-wtf
 
itsdangerous==0.24        # via flask
 
Jinja2==2.8               # via flask
 
Jinja2==2.9.6             # via flask
 
jsonschema==2.5.1
 
MarkupSafe==0.23          # via jinja2
 
MarkupSafe==1.0           # via jinja2
 
onionpy==0.3.2
 
pygeoip==0.3.2
 
python-gnupg==0.3.8
 
pytz==2015.7              # via babel
 
requests==2.9.1           # via onionpy, rt
 
rt==1.0.8
 
six==1.10.0               # via rt
 
strict-rfc3339==0.6
 
visitor==0.1.2            # via flask-bootstrap
 
Werkzeug==0.11.4          # via flask, flask-wtf
 
requests==2.9.1           # via onionpy
 
strict-rfc3339==0.7
 
visitor==0.1.3            # via flask-bootstrap
 
Werkzeug==0.12.2          # via flask, flask-wtf
 
WTForms==2.1              # via flask-wtf
setup.py
Show inline comments
 
from setuptools import setup, find_packages
 

	
 

	
 
def _get_requirements():
 

	
 
    with open('requirements.in', encoding='utf-8') as f:
 
    with open('requirements.txt', encoding='utf-8') as f:
 
        lines = f.readlines()
 

	
 
    lines = [line[:-1] for line in lines if not line.startswith('#')]
 
    return lines
 

	
 

	
 
setup(name='Ennstatus',
 
      version='5.6.5',
 
      version='5.7.1-dev',
 
      description=('Ennstatus provides the user with vital information about '
 
                   'the status of the organizations Tor servers.'),
 
      author='Frënn vun der Ënn',
 
      author_email='info@enn.lu',
 
      url='https://bitbucket.org/fvde/ennstatus',
 
      license='GPLv3+',
 
      packages=find_packages(),
 
      install_requires=_get_requirements(),
 
      include_package_data=True,
 
      entry_points={
 
          'console_scripts': [
 
              'ennstatuscli = ennstatus.cli:cli',
0 comments (0 inline, 0 general)