<meta name="author" content="IPFire.org - IPFire Development Team" />
<meta name="keywords" content="Linux, Firewall, IPFire, Security, IPCop, Open Source, Free, ARM, VPN, Proxy, IDS, IPS" />
- <meta name="description" content="{{ _("IPFire is a free firewall distribution based on Linux.") }}" />
+
+ <link rel="icon" sizes="192x192" href="{{ static_url("img/apple-touch-icon-192x192-precomposed.png") }}">
+ {% for res in ("72x72", "76x76", "120x120", "144x144", "152x152", "180x180") %}
+ <link rel="apple-touch-icon-precomposed" sizes="{{ res }}" href="{{ static_url("img/apple-touch-icon-%s-precomposed.png" % res )}}">
+ {% end %}
+ <link rel="apple-touch-icon-precomposed" href="{{ static_url("img/apple-touch-icon-60x60-precomposed.png") }}">
<!-- styling stuff -->
<link rel="stylesheet" type="text/css" href="{{ static_url("main.css") }}" />
{% block head %}{% end block %}
</head>
- <body id="page-top">
- <nav class="navbar navbar-dark navbar-expand-lg mb-4">
+ <body>
+ <nav class="navbar" role="navigation" aria-label="main navigation">
<div class="container">
- <a class="navbar-brand" href="/">
- <strong>IPFire</strong>
-
- {% if hostname == "blog.ipfire.org" %}
- {{ _("Blog") }}
- {% elif hostname == "fireinfo.ipfire.org" %}
- {{ _("Fireinfo") }}
- {% elif hostname == "mirrors.ipfire.org" %}
- {{ _("Mirrors") }}
- {% elif hostname == "people.ipfire.org" %}
- {{ _("People") }}
- {% end %}
- </a>
-
- {% block menu %}
- {% if hostname in ("www.ipfire.org", "dev.ipfire.org") %}
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
- aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
- <span class="fas fa-bars"></span>
- </button>
-
- <div class="collapse navbar-collapse" id="navbar">
- <ul class="navbar-nav ml-auto">
- <li class="nav-item d-sm-block d-md-block d-lg-none">
- <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">{{ _("Home") }}</a>
- </li>
-
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/features" %}active{% end %}" href="/features">{{ _("Features") }}</a>
- </li>
-
- <li class="nav-item">
- <a class="nav-link {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
- </li>
-
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/support" %}active{% end %}" href="/support">{{ _("Support") }}</a>
- </li>
- </ul>
-
- <a class="btn btn-primary mt-2 mt-lg-0 ml-lg-2" href="/donate">
- <span class="fas fa-heart"></span> {{ _("Donate") }}
- </a>
- </div>
- {% elif hostname == "blog.ipfire.org" %}
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
- aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
- <span class="fas fa-bars"></span>
- </button>
-
- <div class="collapse navbar-collapse" id="navbar">
- <ul class="navbar-nav ml-auto d-lg-none">
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/" %}active{% end %}" href="/">
- {{ _("Newest") }}
- </a>
- </li>
-
- {% if current_user %}
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/drafts" %}active{% end %}" href="/drafts">
- {{ _("My Drafts") }}
- </a>
- </li>
- {% end %}
+ <div class="navbar-brand">
+ <a class="navbar-item is-size-4" href="/">
+ <strong>
+ IPFire<span class="has-text-primary">_</span>
+
+ {% if hostname.startswith("fireinfo.") %}
+ {{ _("Fireinfo") }}
+ {% elif hostname.startswith("nopaste.") %}
+ {{ _("Nopaste") }}
+ {% elif hostname.startswith("location.") %}
+ {{ _("Location") }}
+ {% elif hostname.startswith("wiki.") %}
+ {{ _("Wiki") }}
+ {% end %}
+ </strong>
+ </a>
+ <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarMainMenu">
+ <span aria-hidden="true"></span>
+ <span aria-hidden="true"></span>
+ <span aria-hidden="true"></span>
+ </a>
+ </div>
+ <div class="navbar-menu" id="navbarMainMenu">
+ {% block menu %}
+ {% if hostname.startswith("www.") or hostname.startswith("dev.") %}
+ <div class="navbar-end">
+ <a class="navbar-item {% if request.path == "/about" %}active{% end %}" href="/about">{{ _("About") }}</a>
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/tags/featured" %}active{% end %}" href="/tags/featured">
- {{ _("Featured") }}
- </a>
- </li>
+ <a class="navbar-item {% if request.path.startswith("/download") %}active{% end %}" href="/download">{{ _("Download") }}</a>
- <li class="nav-item">
- <a class="nav-link {% if request.path == "/tags/lightningwirelabs.com" %}active{% end %} d-flex justify-content-between"
- href="/tags/lightningwirelabs.com">
- <span>{{ _("Lightning Wire Labs") }}</span>
+ <a class="navbar-item {% if request.path.startswith("/blog") %}active{% end %}" href="/blog">{{ _("Blog") }}</a>
- <img class="img-fluid" src="{{ static_url("img/lightningwirelabs-logo.svg") }}"
- alt="{{ _("Lightning Wire Labs") }}">
- </a>
- </li>
+ <a class="navbar-item {% if request.path == "/help" %}active{% end %}" href="/help">{{ _("Help") }}</a>
- <li class="nav-item">
- <a class="nav-link d-flex justify-content-between" href="/feed.xml">
- <span>{{ _("RSS Feed") }}</span> <span class="fas fa-rss"></span>
+ <div class="navbar-item">
+ <a class="button is-lwl has-text-weight-bold is-uppercase"
+ href="https://store.lightningwirelabs.com/?utm_source={{ hostname }}&utm_medium=navigation">
+ {{ _("Buy") }}
</a>
- </li>
- </ul>
-
- <form class="form-inline ml-lg-auto my-2 my-lg-0" action="/search" method="GET">
- <input class="form-control form-control-sm" type="search" name="q"
- placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
- </form>
-
- <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
- <span class="fas fa-heart"></span> {{ _("Donate") }}
- </a>
- </div>
- {% elif hostname == "fireinfo.ipfire.org" %}
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
- aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
- <span class="fas fa-bars"></span>
- </button>
+ </div>
- <div class="collapse navbar-collapse" id="navbar">
- <ul class="navbar-nav ml-auto">
- <li class="nav-item">
- <a class="nav-link {% if request.path.startswith("/vendors") %}active{% end %}" href="/vendors">
- {{ _("Vendors") }}
+ <div class="navbar-item">
+ <a class="button is-primary has-text-weight-bold is-uppercase"
+ href="https://www.ipfire.org/donate">
+ {{ _("Donate") }}
</a>
- </li>
- </ul>
- </div>
- {% elif hostname == "nopaste.ipfire.org" %}
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
- aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
- <span class="fas fa-bars"></span>
- </button>
-
- <div class="collapse navbar-collapse" id="navbar">
- <ul class="navbar-nav ml-auto">
- <li class="nav-item">
- <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a>
- </li>
- </ul>
- </div>
- {% elif hostname == "people.ipfire.org" %}
- {% if current_user %}
+ </div>
+ </div>
+ {% elif hostname == "fireinfo.ipfire.org" %}
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="fas fa-bars"></span>
</button>
-
+
<div class="collapse navbar-collapse" id="navbar">
- <ul class="navbar-nav ml-auto mr-3">
+ <ul class="navbar-nav ml-auto">
+ {% if current_user and current_user.is_staff() %}
+ <li class="nav-item">
+ <a class="nav-link {% if request.path.startswith("/admin") %}active{% end %}" href="/admin">
+ {{ _("Admin") }}
+ </a>
+ </li>
+ {% end %}
+
<li class="nav-item">
- <a class="nav-link {% if request.path == "/users/%s" % current_user.uid %}active{% end %}" href="/users/{{ current_user.uid }}">
- {{ _("My Profile") }}
+ <a class="nav-link {% if request.path.startswith("/vendors") %}active{% end %}" href="/vendors">
+ {{ _("Vendors") }}
</a>
</li>
-
+ </ul>
+ </div>
+ {% elif hostname == "location.ipfire.org" %}
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
+ aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="fas fa-bars"></span>
+ </button>
+
+ <div class="collapse navbar-collapse" id="navbar">
+ <ul class="navbar-nav ml-auto">
<li class="nav-item">
- <a class="nav-link {% if request.path.startswith("/users/%s/calls" % current_user.uid) %}active{% end %}" href="/users/{{ current_user.uid }}/calls">
- {{ _("My Calls") }}
-
- {% if current_user.sip_channels %}
- <span class="badge badge-primary ml-2">{{ len(current_user.sip_channels) }}</span>
- {% end %}
+ <a class="nav-link {% if request.path == "/how-to-use" %}active{% end %}" href="/how-to-use">
+ {{ _("How To Use") }}
</a>
</li>
-
+
<li class="nav-item">
- <a class="nav-link {% if request.path == "/users" %}active{% end %}" href="/users">
- {{ _("Users") }}
+ <a class="nav-link {% if request.path == "/download" %}active{% end %}" href="/download">
+ {{ _("Download") }}
</a>
</li>
-
+ </ul>
+
+ <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
+ {{ _("Donate") }}
+ </a>
+ </div>
+ {% elif hostname == "nopaste.ipfire.org" %}
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
+ aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="fas fa-bars"></span>
+ </button>
+
+ <div class="collapse navbar-collapse" id="navbar">
+ <ul class="navbar-nav ml-auto">
<li class="nav-item">
- <a class="nav-link {% if request.path.startswith("/conferences") %}active{% end %}" href="/conferences">
- {{ _("Conferences") }}
- </a>
+ <a class="nav-link" href="/?mode=upload">{{ _("Upload File") }}</a>
</li>
</ul>
-
- <form class="form-inline my-2 my-lg-0" action="/search" method="GET">
- <input class="form-control form-control-sm mr-sm-2" type="search" name="q"
- placeholder="{{ _("Search") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
+ </div>
+ {% elif hostname == "wiki.ipfire.org" %}
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar"
+ aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="fas fa-bars"></span>
+ </button>
+
+ <div class="collapse navbar-collapse" id="navbar">
+ <form class=" ml-auto my-2 my-lg-0" action="/search" method="GET">
+ <input class="form-control form-control-sm" type="search" name="q"
+ placeholder="{{ _("Search...") }}" aria-label="{{ _("Search") }}" value="{% try %}{{ q }}{% except %}{% end %}">
</form>
+
+ <a class="btn btn-primary ml-lg-2" href="https://www.ipfire.org/donate">
+ {{ _("Donate") }}
+ </a>
</div>
{% end %}
- {% end %}
- {% end block %}
+ {% end block %}
+ </div>
</div>
</nav>
{% end block %}
{% block footer %}
- <footer>
- <div class="footer">
- {% if hostname in ("www.ipfire.org", "blog.ipfire.org", "dev.ipfire.org") %}
- <div class="footer-info">
- <div class="container pb-3">
- <div class="row mb-6 justify-content-between">
- <div class="col-12 col-lg-4 mb-4">
- <h6>{{ _("Subscribe to our Newsletter") }}</h6>
-
- <form method="POST" action="https://{{ "dev.ipfire.org" if hostname == "dev.ipfire.org" else "www.ipfire.org" }}/newsletter/subscribe">
- {% raw xsrf_form_html() %}
-
- <label class="sr-only" for="email">{{ _("Email Address") }}</label>
-
- <input type="email" class="form-control mb-2 mr-sm-2" id="email" name="email"
- placeholder="{{ _("Your Email Address") }}">
+ <footer class="footer">
+ <div class="container">
+ <div class="columns">
+ <div class="column is-two-fifths">
+ {# Show some profile information for users who are logged in #}
+ {% if current_user %}
+ <h4 class="title is-4 mb-0">{{ _("Hello, %s!") % current_user }}</h4>
+
+ <div class="level is-mobile">
+ <div class="level-left">
+ <a class="level-item" href="/users/{{ current_user.uid }}">
+ {{ _("My Profile") }}
+ </a>
- <button type="submit" class="btn btn-primary btn-block mb-2">{{ _("Subscribe") }}</button>
- </form>
+ <a class="level-item" href="/logout">
+ {{ _("Logout") }}
+ </a>
</div>
+ </div>
- <div class="col-12 col-lg-3 mb-4 small">
- <h6>{{ _("About") }}</h6>
-
- <div class="row">
- <div class="col">
- <ul class="list-unstyled">
- <li>
- <a href="https://www.ipfire.org/features">{{ _("Features") }}</a>
- </li>
+ {# Otherwise encourage people to join #}
+ {% else %}
+ <p class="is-size-4">
+ <span class="has-text-weight-bold">IPFire</span><span class="has-text-primary has-text-weight-bold">_</span>People
+ </p>
- <li>
- <a href="https://downloads.ipfire.org">{{ _("Download") }}</a>
- </li>
+ <p>
+ Join the community and sign up for our newsletter
+ </p>
- <li>
- <a href="https://www.ipfire.org/support">{{ _("Support") }}</a>
- </li>
- </ul>
- </div>
+ <a class="button is-primary is-outlined is-medium
+ has-text-black has-text-weight-bold" href="/register">
+ JOIN NOW
+ </a>
+ {% end %}
+ </div>
- <div class="col">
- <ul class="list-unstyled">
- <li>
- <a href="https://blog.ipfire.org">{{ _("Blog") }}</a>
- </li>
+ <div class="column is-one-fifth">
+ <ul>
+ <li>
+ <a href="/about">
+ {{ _("About") }}
+ </a>
+ </li>
+ <li>
+ <a href="https://wiki.ipfire.org">
+ {{ _("Wiki") }}
+ </a>
+ </li>
+ <li>
+ <a href="/help">
+ {{ _("Help") }}
+ </a>
+ </li>
+ <li>
+ <a href="https://wiki.ipfire.org/devel">
+ {{ _("Development") }}
+ </a>
+ </li>
+ </ul>
+ </div>
- <li>
- <a href="https://wiki.ipfire.org/devel/start">{{ _("Development") }}</a>
- </li>
+ <div class="column is-one-fifth">
+ <ul>
+ <li>
+ <a href="/download">
+ {{ _("Download") }}
+ </a>
+ </li>
+ <li>
+ <a href="/blog">
+ {{ _("Blog") }}
+ </a>
+ </li>
+ <li>
+ <a href="https://community.ipfire.org/">
+ {{ _("Community") }}
+ </a>
+ </li>
+ <li>
+ <a href="/legal">
+ {{ _("Legal") }}
+ </a>
+ </li>
+ </ul>
+ </div>
- <li>
- <a href="https://www.ipfire.org/legal">{{ _("Legal") }}</a>
- </li>
- </ul>
- </div>
- </div>
- </div>
+ <div class="column is-one-fifth">
+ <div class="block">
+ <a class="button is-primary is-fullwidth is-medium has-text-weight-bold is-uppercase"
+ href="https://www.ipfire.org/donate">
+ {{ _("Donate") }}
+ </a>
+ </div>
- <div class="col-12 col-lg-4 text-center mb-4">
- <a class="btn btn-primary btn-lg px-4 my-4" href="https://www.ipfire.org/donate">
- <span class="fas fa-heart"></span> {{ _("Donate") }}
+ <div class="block">
+ <div class="level is-mobile">
+ <div class="level-item">
+ <a href="https://twitter.com/ipfire">
+ <i class="fa-brands fa-twitter"></i>
</a>
-
- <div class="btn-toolbar justify-content-center">
- <a class="btn btn-link" href="https://twitter.com/ipfire">
- <span class="fab fa-twitter"></span>
- </a>
-
- <a class="btn btn-link" href="https://www.facebook.com/IPFire.org">
- <span class="fab fa-facebook"></span>
- </a>
-
- <a class="btn btn-link" href="https://youtube.com/user/ipfireproject">
- <span class="fab fa-youtube"></span>
- </a>
- </div>
</div>
+ <div class="level-item">
+ <a href="https://linkedin.com/company/ipfire">
+ <i class="fa-brands fa-linkedin-in"></i>
+ </a>
+ </dif>
</div>
</div>
</div>
- {% end %}
-
- <div class="copyright">
- <div class="container d-flex justify-content-between">
- © {{ year }} - IPFire - {{ _("The Open Source Firewall") }}
-
- {% if not current_user and hostname in ("blog.ipfire.org", "nopaste.ipfire.org") %}
- <a href="/login">{{ _("Login") }}</a>
- {% elif current_user %}
- <span>
- {{ _("You are currently logged in as %s") % current_user.name }}
- <a href="/logout">{{ _("Logout") }}</a>
- </span>
- {% end %}
- </div>
</div>
</div>
</footer>
{% end block %}
- <script src="{{ static_url("js/jquery-3.3.1.min.js") }}"></script>
- <script src="{{ static_url("js/popper.min.js") }}"></script>
- <script src="{{ static_url("js/bootstrap.min.js") }}"></script>
+ <script src="{{ static_url("js/jquery-3.6.0.min.js") }}"></script>
+ <script src="{{ static_url("js/site.js") }}"></script>
{% block javascript %}{% end block %}
</body>
</html>