]> git.ipfire.org Git - ipfire.org.git/blob - src/templates/index.html
features: Use card
[ipfire.org.git] / src / templates / index.html
1 {% extends "base-1.html" %}
2
3 {% block title %}{{ _("Welcome to IPFire") }}{% end block %}
4
5 {% block container %}
6 <div class="main">
7 <section class="intro">
8 <div class="container">
9 <div class="branding">
10 <h1 class="display-1">IP<strong>Fire</strong></h1>
11 <h5>The Open Source Firewall Distribution</h5>
12 </div>
13
14 <div class="row justify-content-center">
15 <a class="btn btn-outline-primary btn-lg mr-3" href="/download">{{ _("Download") }}</a>
16 <a class="btn btn-outline-dark btn-lg ml-3" href="/features">{{ _("Features") }}</a>
17 </div>
18 </div>
19
20 <div class="page-scroll">
21 <a href="#features" class="btn btn-outline-primary rounded-circle scroll">
22 <svg class="icon i_lg i_arrow_down"><use xlink:href="#arrow_down"/></svg>
23 </a>
24 </div>
25 </section>
26
27 <section id="features">
28 <div class="container">
29 <h1 class="text-center">{{ _("Secure up your network with IPFire") }}</h1>
30
31 <div class="row mb-lg-6 mb-md-5">
32 <div class="col-md-6 col-lg-4 mb-6 pb-lg-5 d-flex">
33 <div class="feature_icons align-self-stretch">
34 <svg class="icon i_lg i_shield"><use xlink:href="#shield"/></svg>
35 </div>
36 <div class="flex-column">
37 <h5 class="pb-3">{{ _("Firewall") }}</h5>
38 <p>
39 IPFire comes with a versatile and state of the art
40 firewall engine that makes even the most complex
41 setups easy to administer.
42 </p>
43 </div>
44 </div>
45
46 <div class="col-md-6 col-lg-4 mb-6 d-flex">
47 <div class="feature_icons align-self-stretch">
48 <svg class="icon i_lg i_speed"><use xlink:href="#speed"/></svg>
49 </div>
50 <div class="flex-column">
51 <h5 class="pb-3">{{ _("Performance") }}</h5>
52 <p>
53 IPFire is ready for high performance networks
54 and running evenly well on embedded hardware.
55 </p>
56 </div>
57 </div>
58
59 <div class="col-md-6 col-lg-4 mb-6 d-flex">
60 <div class="feature_icons align-self-stretch">
61 <svg class="icon i_lg i_couch"><use xlink:href="#couch"/></svg>
62 </div>
63 <div class="flex-column">
64 <h5 class="pb-3">{{ _("Easy to use") }}</h5>
65 <p class="mb-1">
66 IPFire is set up easily in 15 to 20 minutes
67 but also comes with expert features that
68 are needed in professional networks.
69 </p>
70 </div>
71 </div>
72
73 <div class="col-md-6 col-lg-4 mb-6 d-flex">
74 <div class="feature_icons align-self-stretch">
75 <svg class="icon i_lg i_security"><use xlink:href="#security"/></svg>
76 </div>
77 <div class="flex-column">
78 <h5 class="pb-3">{{ _("Network Security") }}</h5>
79 <p>
80 IPFire is designed for high security.
81 It is hardened to protect itself from attacks
82 from the network.
83 </p>
84 </div>
85 </div>
86
87 <div class="col-md-6 col-lg-4 mb-6 d-flex">
88 <div class="feature_icons align-self-stretch">
89 <svg class="icon i_lg i_github"><use xlink:href="#github"/></svg>
90 </div>
91 <div class="flex-column">
92 <h5 class="pb-3">{{ _("Open Source") }}</h5>
93 <p>
94 IPFire is free software and developed by an open community,
95 that improves it every single day.
96 </p>
97 </div>
98 </div>
99
100 <div class="col-md-6 col-lg-4 mb-6 d-flex">
101 <div class="feature_icons align-self-stretch">
102 <svg class="icon i_lg i_heart"><use xlink:href="#heart"/></svg>
103 </div>
104 <div class="flex-column">
105 <h5 class="pb-3">{{ _("Trusted by thousands") }}</h5>
106 <p>
107 IPFire is developed in Europe and used all over the world
108 <a href="https://fireinfo.ipfire.org/statistics/geo-locations">in hundreds of countries</a>
109 by hundreds of thousands of users every day.
110 </p>
111 </div>
112 </div>
113 </div>
114
115 <div class="btn-toolbar justify-content-center pt-0 pt-md-4">
116 <a class="btn btn-primary btn-lg mr-4 px-4 px-md-6" href="/get-started">{{ _("Get Started") }}</a>
117 <a class="btn btn-secondary btn-lg px-4 px-md-6" href="/features">{{ _("Learn more") }}</a>
118 </div>
119 </div>
120 </section>
121
122 <section id="news">
123 <div class="container">
124 <div class="row">
125 <div class="col-12 col-md-6 col-lg-5 mb-5">
126 <h1>Latest Release</h1>
127
128 <p class="mb-0">
129 <small>{{ locale.format_date(latest_release.date, shorter=True) }}</small>
130 </p>
131
132 <h3 class="mb-5">
133 <a href="/news/{{ latest_release.news.slug }}">
134 {{ _("%s has been released!") % latest_release.name }}
135 </a>
136 </h3>
137
138 <div class="btn-toolbar mb-5">
139 <a class="btn btn-primary mr-3" href="/download">
140 <svg class="icon i_sm i_download"><use xlink:href="#download"/></svg>
141 {{ _("Download") }}
142 </a>
143
144 <a class="btn btn-secondary ml-3" href="/donate">
145 <svg class="icon i_sm i_heart"><use xlink:href="#heart"/></svg>
146 {{ _("Donate") }}
147 </a>
148 </div>
149
150 <p>
151 A complete history of IPFire releases is available at our <a href="/news">News</a> page.
152 </p>
153 </div>
154
155 <div class="col-12 col-md-6 col-lg-5 offset-lg-2">
156 <h1>What&rsquo;s going on?</h1>
157
158 <dl class="dl-horizontal">
159 {% for type, item in latest_news %}
160 <dt>
161 <small>{{ locale.format_date(item.published, relative=True, shorter=True) }} &nbsp;</small>
162 </dt>
163
164 <dd class="text-overflow mb-4">
165 {% if type == "news" %}
166 <a href="/news/{{ item.slug }}">
167 <strong>{{ item.title }}</strong>
168 </a>
169 {% elif type == "planet" %}
170 <a href="https://planet.ipfire.org/post/{{ item.slug }}">
171 {{ item.title }}
172 </a>
173 {% end %}
174 </dd>
175 {% end %}
176 </dl>
177
178 <a class="btn btn-secondary" href="/news">{{ _("Read More") }}</a>
179 </div>
180 </div>
181 </div>
182 </section>
183
184 <section id="fireinfo">
185 <div class="container">
186 <h1 class="text-center">Fire<strong>Info</strong> Statistics</h1>
187
188 <div class="row mb-6 mb-md-5 pb-lg-5 mb-lg-6 justify-content-center">
189 <div class="col-6 col-md-3 mb-6 text-center">
190 <p class="mb-0 mb-sm-3 fireinfo_cat">Latest Release</p>
191 <h6 class="pb-5 fireinfo">{{ latest_release.name }}</h6>
192 <div class="r_circle circle mt-5">
193 <p class="fireinfo_per">{{ "%.0f%%" % (latest_release.penetration * 100) }}</p>
194 </div>
195 <script>
196 $('.r_circle').circleProgress({ value: {{ latest_release.penetration }}, size: 128, thickness: 4, animation: false, startAngle: -Math.PI / 2, fill: { color: ["#1976d2"] } });
197 </script>
198 </div>
199
200 {% if fireinfo_country %}
201 <div class="col-6 col-md-3 text-center">
202 <p class="mb-0 mb-sm-3 fireinfo_cat truncate">
203 {{ _("%.0f%% of all IPFire systems are running in") % (fireinfo_country.percentage * 100) }}
204 </p>
205 <h6 class="pb-5 fireinfo">{{ fireinfo_country.country.name }}</h6>
206 <div class="v_circle circle mt-5">
207 <p class="fireinfo_per">{{ "%.0f%%" % (fireinfo_country.percentage * 100) }}</p>
208 </div>
209 <script>
210 $('.v_circle').circleProgress({ value: {{ fireinfo_country.percentage }}, size: 128, thickness: 4, animation: false, startAngle: -Math.PI / 2, fill: { color: ["#ff8f00"] } });
211 </script>
212 </div>
213 {% end %}
214 </div>
215
216 <div class="row justify-content-center">
217 <a class="btn btn-lg btn-primary" href="/stats">More Stats</a>
218 </div>
219 </div>
220 </section>
221
222 <section id="appliances">
223 <div class="container">
224 <h1 class="text-center">{{ _("Professional Appliances & Services") }}</h1>
225
226 <div class="row mb-lg-6 mb-md-4 pb-6 pb-lg-4">
227 <div class="col-md-12 col-lg-7 mb-5 mb-md-6 mb-lg-0">
228 <p class="lead">
229 <a href="https://www.lightningwirelabs.com" target="_blank">Lightning Wire Labs</a> offer
230 IPFire hardware appliances for enterprises, large businesses and SOHO.
231 Deploying one of these on your network will provide you with the
232 greatest reliability, stability and performance.
233 </p>
234 </div>
235 <div class="col-sm-6 offset-sm-3 col-lg-4 offset-lg-1">
236 <a class="btn btn-dark btn-lg btn-block px-md-0 mb-4" href="/get-support#professional">{{ _("Get Professional Support") }}</a>
237 <a class="btn btn-dark btn-lg btn-block px-md-0" href="/hardware">{{ _("Hardware Appliances") }}</a>
238 </div>
239 </div>
240 <div class="text-center">
241 <picture>
242 <source media="(max-width: 575px" srcset="{{ static_url("img/appliance-pro_xs.png") }}">
243 <source media="(max-width: 767px" srcset="{{ static_url("img/appliance-pro_sm.png") }}">
244 <source media="(max-width: 991px" srcset="{{ static_url("img/appliance-pro_md.png") }}">
245 <source media="(min-width: 992px" srcset="{{ static_url("img/appliance-pro.png") }}">
246 <img class="img-fluid" src="{{ static_url("img/appliance-pro.png") }}" alt="Appliance">
247 </picture>
248 </div>
249 </div>
250 </section>
251 </div>
252 <script>
253 $(document).ready(function () {
254 $('.scroll').on('click', function(event) {
255 event.preventDefault();
256 $('html, body').stop().animate({
257 scrollTop: $('#features').offset().top -72
258 }, 1000);
259 });
260 });
261 </script>
262 {% end block %}