-
Notifications
You must be signed in to change notification settings - Fork 2
/
introduction-to-diy-home-server.html
339 lines (322 loc) · 19.2 KB
/
introduction-to-diy-home-server.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Salih Emin" />
<meta name="copyright" content="Salih Emin" />
<meta name="description" content="This is an introductory article for a series of articles for building, deploying, securing, maintaining, troubleshooting and administering your home server or any server in general.
" />
<meta property="og:type" content="article" />
<meta name="twitter:card" content="summary">
<meta name="keywords" content="DIY, single-board computer, server, Server Roles, " />
<meta property="og:title" content="Introduction to DIY Home Server "/>
<meta property="og:url" content="http://utappia.org/introduction-to-diy-home-server.html" />
<meta property="og:description" content="This is an introductory article for a series of articles for building, deploying, securing, maintaining, troubleshooting and administering your home server or any server in general." />
<meta property="og:site_name" content="Utappia" />
<meta property="og:article:author" content="Salih Emin" />
<meta property="og:article:published_time" content="2015-05-17T13:45:00+03:00" />
<meta property="" content="2015-05-17T22:45:00+03:00" />
<meta name="twitter:title" content="Introduction to DIY Home Server ">
<meta name="twitter:description" content="This is an introductory article for a series of articles for building, deploying, securing, maintaining, troubleshooting and administering your home server or any server in general.">
<title>Introduction to DIY Home Server · Utappia
</title>
<!-- <link rel="stylesheet" type="text/css" href="http://utappia.org/theme/css/bootstrap-combined.min.css" media="screen">-->
<!-- <link rel="stylesheet" type="text/css" href="http://utappia.org/theme/css/font-awesome.css" media="screen"> -->
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
<link href="//netdna.bootstrapcdn.com/font-awesome/4.0.1/css/font-awesome.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="http://utappia.org/theme/css/pygments.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://utappia.org/theme/tipuesearch/tipuesearch.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://utappia.org/theme/css/elegant.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://utappia.org/theme/css/custom.css" media="screen">
<link href="http://utappia.org/feeds/all.rss.xml" type="application/atom+xml" rel="alternate" title="Utappia - Full Atom Feed" />
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-62475496-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<div id="content-sans-footer">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container-fluid">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="http://utappia.org/"><span class=site-name>Utappia</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li ><a href="http://utappia.org">Home</a></li>
<li ><a href="http://utappia.org/pages/downloads.html">Downloads</a></li>
<li ><a href="http://utappia.org/pages/feedback.html">Feedback</a></li>
<li ><a href="http://utappia.org/categories.html">Categories</a></li>
<li ><a href="http://utappia.org/tags.html">Tags</a></li>
<li ><a href="http://utappia.org/archives.html">Archives</a></li>
<li><form class="navbar-search" action="http://utappia.org/search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article>
<div class="row-fluid">
<header class="page-header span10 offset2">
<h1><a href="http://utappia.org/introduction-to-diy-home-server.html"> Introduction to DIY Home Server </a></h1>
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- Front page -->
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-1644909386979397"
data-ad-slot="1718239665"
data-ad-format="auto"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
</header>
</div>
<div class="row-fluid">
<div class="span2 table-of-content">
<nav>
<h4>Contents</h4>
<div class="toc">
<ul>
<li><a href="#abstract">Abstract</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#materials-and-methods">Materials and Methods</a><ul>
<li><a href="#hardware">Hardware</a></li>
<li><a href="#network">Network</a></li>
<li><a href="#operating-system">Operating System</a></li>
<li><a href="#clients">Clients</a></li>
</ul>
</li>
<li><a href="#results-and-discussion">Results and discussion</a></li>
<li><a href="#references">References</a></li>
</ul>
</div>
</nav>
</div>
<div class="span8 article-content">
<p><img alt="Introduction to diy home server" src="/images/intro-diy-home-server-office-coffie-phone-laptop1280.jpg" style="width: 1280px; height: auto;" title="Introduction to diy home server"/></p>
<h1 id="abstract">Abstract</h1>
<p>A home server can be extremely useful for managing your personal data like backing up your files, streaming your music, photos and videos and accessing locally installed services like webmail, webeditor, calendar, notes, contacts, finances and many more.</p>
<p>This is an introductory article for a series of articles for building, deploying, securing, maintaining, troubleshooting and administering your home server or any server in general.</p>
<h1 id="introduction">Introduction</h1>
<p>A server, either external (hosted on 3rd party providers) or internal (in your home) is a computer dedicated to run an instance of an application (software) capable of accepting requests from the client (your PC, smartphone/tablet, TV etc.) and giving responses accordingly. Servers can run on any computer including dedicated computers, which individually are also often referred to as "the server". Note that in theory, any computerized process that shares a resource to one or more client processes is a server.</p>
<h1 id="materials-and-methods">Materials and Methods</h1>
<p>Before we get started, I would suggest that you should get a member of your family (kids, brother/sister, grandma? ) or a friend involved to the DIY Home Server project because it will be more fun and entertaining than to work alino on the project.</p>
<p>To be able to build a home server we need to understand some terms:</p>
<ul>
<li>Hardware</li>
<li>Network</li>
<li>Operating System</li>
<li>Clients</li>
</ul>
<h2 id="hardware">Hardware</h2>
<p>The computer that will take the role of a home server could be any spare computer lying around. Unfortunately though this would mean that the this computer will have to be 24/7 powered on, could be loud and the consumption of electricity would make it not viable for the role. That is why I suggest avoid using common computers for home server role but instead buying a credit card-sized single-board computer like:</p>
<ul>
<li><a href="http://www.amazon.com/gp/search/ref=as_li_qf_sp_sr_tl?ie=UTF8&camp=1789&creative=9325&index=aps&keywords=Rasberry%20Pi&linkCode=ur2&tag=cerebrux-20&linkId=Y53AW6WZE6WEUBAU">Raspberry Pi</a></li>
<li><a href="http://www.amazon.com/gp/search/ref=as_li_qf_sp_sr_tl?ie=UTF8&camp=1789&creative=9325&index=aps&keywords=Banana%20pi&linkCode=ur2&tag=cerebrux-20&linkId=7IFXR2M65XPZK2C7">Banana Pi</a></li>
<li><a href="http://www.amazon.com/gp/search/ref=as_li_qf_sp_sr_tl?ie=UTF8&camp=1789&creative=9325&index=aps&keywords=BeagleBoard&linkCode=ur2&tag=cerebrux-20&linkId=QUBALY3PAUTFU7FF">BeagleBoard</a></li>
<li><a href="http://amzn.to/1Afsivz">Cubieboard</a></li>
<li><a href="http://amzn.to/1ILmoUu">Odroid</a></li>
</ul>
<p>This type of computers are low on power consumption, silent and generally provide more "value for money". The total <strong>return of investment</strong> exceeds the one that will be provided by a common computer.</p>
<h2 id="network">Network</h2>
<p>The network is the "glue" that connects our server with the various clients (as mentioned earlier).</p>
<p>The network is consisted of</p>
<ul>
<li>Router</li>
<li>Cables</li>
<li>IP assignments</li>
</ul>
<p>Our router is actually a mini internet/dhcp server and its role is to provide Internet connection, IP addresses and data/requests deliverance, among other things through the cables to the the clients and vice versa.</p>
<h2 id="operating-system">Operating System</h2>
<p>There are specialized free (as in beer and freedom of speech) operating systems for the server role that are compatible with the single-board computers that I mentioned earlier. Most popular among them are:</p>
<ul>
<li>Ubuntu</li>
<li>Debian</li>
<li>Arch Linux</li>
<li>openSUSE</li>
</ul>
<p>Personally I prefer Ubuntu because of their predefined development cycle and the <a href="https://wiki.ubuntu.com/LTS">5 years of support</a> on software updates.</p>
<p>You should choose the one that you are comfortable administering as this will be installed on the server for years to come.</p>
<h2 id="clients">Clients</h2>
<p>Clients are any devices that connect and exchange information with our home server. The kind of exchange depends on the types of services that the server provides and the capabilities of the device that request those services. A home server usually provides:</p>
<ul>
<li>Centralized storage</li>
<li>Media serving</li>
<li>Information (calendar, contacts etc.)</li>
<li>E-mail</li>
<li>Security monitoring</li>
<li>P2P file sharing</li>
</ul>
<h1 id="results-and-discussion">Results and discussion</h1>
<p>Now that we've discussed the core terms of building a home intranet, we should be able to create a draft plan of the parts that we will need to succeed in our project.</p>
<p>I should mention that building a home server not only pays off but it is fun and educative. So stay tuned for the next article either by subscribing to newsletter or following me at social nets.</p>
<h1 id="references">References</h1>
<ol>
<li>Server definition : <a href="http://en.wikipedia.org/wiki/Server_%28computing%29">wikipedia</a></li>
<li>Home Server : <a href="http://en.wikipedia.org/wiki/Home_server">wikipedia</a></li>
<li>Intranet definition: <a href="http://en.wikipedia.org/wiki/Intranet">wikipedia</a></li>
</ol>
<section>
<p id="post-share-links">
Share on:
<a href="http://twitter.com/home?status=Introduction%20to%20DIY%20Home%20Server%20http%3A//utappia.org/introduction-to-diy-home-server.html" target="_blank" title="Share on Twitter">Twitter</a>
❄
<a href="http://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=http%3A//utappia.org/introduction-to-diy-home-server.html" target="_blank" title="Share on Facebook">Facebook</a>
❄
<a href="https://plus.google.com/share?url=http%3A//utappia.org/introduction-to-diy-home-server.html" target="_blank" title="Share on Google Plus">Google+</a>
❄
<a href="mailto:?subject=Introduction%20to%20DIY%20Home%20Server&body=http%3A//utappia.org/introduction-to-diy-home-server.html" target="_blank" title="Share via Email">Email</a>
</p>
</section>
<section>
<p id="comment-message">So what do you think? Did I miss something? Is any part unclear? Please leave your comments below </p>
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle disqus-comment-count" data-toggle="collapse" data-parent="#accordion2"
href="http://utappia.org/introduction-to-diy-home-server.html#disqus_thread">
Comments
</a>
</div>
<div id="disqus_thread" class="accordion-body collapse">
<div class="accordion-inner">
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'utappia';
var disqus_identifier = 'http://utappia.org/introduction-to-diy-home-server.html';
var disqus_url = 'http://utappia.org/introduction-to-diy-home-server.html';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
</div>
</div>
</div>
</div>
</section>
<hr/>
</div>
<section>
<div class="span2" style="float:right;font-size:0.9em;">
<h4>Published</h4>
<time pubdate="pubdate" datetime="2015-05-17T13:45:00+03:00">May 17, 2015</time>
<h4>Last Updated</h4>
<time datetime="2015-05-17T22:45:00+03:00">May 17, 2015</time>
<h4>Category</h4>
<a class="category-link" href="http://utappia.org/categories.html#server-roles-ref">Server Roles</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="http://utappia.org/tags.html#diy-ref">DIY
<span>1</span>
</a></li>
<li><a href="http://utappia.org/tags.html#server-ref">server
<span>1</span>
</a></li>
<li><a href="http://utappia.org/tags.html#single-board-computer-ref">single-board computer
<span>1</span>
</a></li>
</ul>
<h4>Contact</h4>
<a href="https://plus.google.com/+Salihemin" title="My Google-Plus Profile" class="sidebar-social-links" target="_blank">
<i class="fa fa-google-plus sidebar-social-links"></i></a>
<a href="https://twitter.com/cerebrux" title="My Twitter Profile" class="sidebar-social-links" target="_blank">
<i class="fa fa-twitter sidebar-social-links"></i></a>
<a href="https://github.com/cerebrux" title="My Github Profile" class="sidebar-social-links" target="_blank">
<i class="fa fa-github sidebar-social-links"></i></a>
<a href="https://www.linkedin.com/in/salihemin" title="My linkedin Profile" class="sidebar-social-links" target="_blank">
<i class="fa fa-linkedin sidebar-social-links"></i></a>
<!-- Begin MailChimp Signup Form -->
<div id="mc-embed-signup">
<form action="http://utappia.us10.list-manage.com/subscribe/post?u=43b8fcc4811e0e42e65177af1&id=5759f75729" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<h4>Get Notified</h4>
<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="your email" required>
<div class="clear"><input type="submit" value="click to subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
</form>
</div>
<!--End mc_embed_signup-->
</div>
</section>
</div>
</article>
</div>
<div class="span1"></div>
</div>
</div>
<div id="push"></div>
</div>
<footer>
<div id="footer">
<ul class="footer-content">
<li class="elegant-license"><a rel="license" target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="/images/cc4.png" /></a><br /><span xmlns:dct="http://purl.org/dc/terms/" href="http://purl.org/dc/dcmitype/Text" property="dct:title" rel="dct:type">Utappia.org website</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName"><a href="https://www.linkedin.com/in/salihemin" target="_blank">Salih Emin</a></span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"target="_blank">Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.</li>
<li class="elegant-power">Powered by <a href="http://getpelican.com/" title="Pelican Home Page">Pelican</a>. Theme: <a href="http://oncrashreboot.com/pelican-elegant" title="Theme Elegant Home Page">Elegant</a> by <a href="http://oncrashreboot.com" title="Talha Mansoor Home Page">Talha Mansoor</a></li>
</ul>
</div>
</footer> <script src="http://code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
<script type="text/javascript">
var disqus_shortname = 'utappia';
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
<script language="javascript" type="text/javascript">
function uncollapse() {
if (window.location.hash.match(/^#comment-\d+$/)) {
$('#disqus_thread').collapse('show');
}
}
</script>
<script type="text/javascript" language="JavaScript">
uncollapse();
window.onhashchange=function(){
if (window.location.hash.match(/^#comment-\d+$/))
window.location.reload(true);
}
</script>
<script>
$('#disqus_thread').on('shown', function () {
var link = document.getElementsByClassName('accordion-toggle');
var old_innerHTML = link[0].innerHTML;
$(link[0]).fadeOut(500, function() {
$(this).text('Click here to hide comments').fadeIn(500);
});
$('#disqus_thread').on('hidden', function () {
$(link[0]).fadeOut(500, function() {
$(this).text(old_innerHTML).fadeIn(500);
});
})
})
</script>
</body>
<!-- Theme: Elegant built for Pelican
License : http://oncrashreboot.com/pelican-elegant -->
</html>