0564: Running OwnCloud in Docker on Linux

This commit is contained in:
i12bretro 2021-10-18 05:05:00 -04:00
parent 01a4df4c8b
commit a0c3174dad

141
0564.html Normal file
View file

@ -0,0 +1,141 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Running OwnCloud in Docker on Linux</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<script type="text/javascript">
$(function(){
$('textarea').each(function(i,e){
theTextarea = $(this);
theTextarea.height((theTextarea[0].scrollHeight-5) +'px');
});
$('li').each(function(i,e){
var uuid = 'li_' + Math.floor(Math.random() * Math.floor(1000000)).toString() + '_' + i.toString();
$(this).contents().wrap('<span id="'+ uuid +'"><label for="cb_'+ uuid +'"></label></span>');
$(this).prepend('<input type="checkbox" class="completeBox" id="cb_' + uuid +'" rel="'+ uuid +'" />')
});
$('code,div.codeBlock,textarea.codeBlock').each(function(i,e){
theElement = $(this);
var lines = theElement.html().split("\n");
theElement.empty();
for(l=0;l<lines.length;l++){
if($.trim(lines[l]) != '' && $.trim(lines[l]).substr(0,1) != '#' && $.trim(lines[l]).indexOf(' #') == -1 && lines[l].substr(0, 4).toUpperCase() != 'REM '){
theElement.append('<input type="image" src="images/clipboard.png" value="" class="copy-text" rel="copy_'+ i +'_'+ l +'" data-clipboard-text="'+ $.trim(lines[l].replace(/"/g, '&quot;')) +'" /><span id="copy_'+ i +'_'+ l +'">'+ lines[l] +'</span>');
} else {
theElement.append(lines[l]);
}
}
});
$(document).on('click','input.copy-text',function(){
theButton = $(this);
$('input.copy-text').attr('src','images/clipboard.png');
$('span.copy-animation,span.copy-animation-ps').removeClass('copy-animation copy-animation-ps');
try {
if($('#'+ theButton.attr('rel')).parent('div').hasClass('PS')){
$('#'+ theButton.attr('rel')).addClass('copy-animation-ps');
} else if($('#'+ theButton.attr('rel')).parent('div').hasClass('CMD')){
$('#'+ theButton.attr('rel')).addClass('copy-animation-cmd');
} else {
$('#'+ theButton.attr('rel')).addClass('copy-animation');
}
navigator.clipboard.writeText(theButton.data('clipboard-text').replace(/<[^>]*>?/gm, ''));
theButton.attr('src','images/clipboard_active.png');
} catch(err) {
}
return false;
});
$(document).on('click','input.completeBox',function(){
theBox = $(this);
$('#'+ theBox.attr('rel')).addClass('strikethrough');
theBox.prop('disabled',true);
theBox.parent('li').prevAll().each(function(i,e){
theLI = $(this);
if(theLI.find('input[type=checkbox]').not(':checked')){
$('#'+ theLI.find('input[type=checkbox]').attr('rel')).addClass('strikethrough');
theLI.find('input[type=checkbox]').prop('checked',true).prop('disabled',true);
}
});
});
if(window.self !== window.top){
window.parent.$('iframe.stepsFrame').height((this['scrollingElement']['scrollHeight']+20) +'px');
}
});
</script>
<link href="css/steps.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="gridContainer">
<div class="topMargin"></div>
<div id="listName" class="topMargin">
<h1>Running OwnCloud in Docker on Linux</h1>
</div>
<div></div>
<div id="content">
<h2>What is OwnCloud?</h2>
<blockquote><em>OwnCloud is a suite of client-server software for creating file hosting services and using them. OwnCloud is functionally very similar to the widely used Dropbox, with the primary functional difference being that OwnCloud is free and open-source, and thereby allowing anyone to install and operate it without charge on a private server. -<a href="https://en.wikipedia.org/wiki/OwnCloud" target="_blank">https://en.wikipedia.org/wiki/OwnCloud</a></em></blockquote>
<h2>Installing Docker</h2>
<ol>
<li>Log into the Linux based device</li>
<li>Run the following commands in the terminal
<div class="codeBlock"># install prerequisites<br />
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y<br />
# add docker gpg key<br />
curl -fsSL https://download.docker.com/linux/$(awk -F&#39;=&#39; &#39;/^ID=/{ print $NF }&#39; /etc/os-release)/gpg | sudo apt-key add -<br />
# add docker software repository<br />
sudo add-apt-repository &quot;deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F&#39;=&#39; &#39;/^ID=/{ print $NF }&#39; /etc/os-release) $(lsb_release -cs) stable&quot;<br />
# install docker<br />
sudo apt install docker-ce docker-compose containerd.io -y<br />
# enable and start docker service<br />
sudo systemctl enable docker &amp;&amp; sudo systemctl start docker<br />
# add the current user to the docker group<br />
sudo usermod -aG docker $USER<br />
# reauthenticate for the new group membership to take effect<br />
su - $USER</div>
</li>
</ol>
<h2>Running OwnCLoud</h2>
<ol>
<li>Now that Docker is installed, run the following commands to setup the OwnCloud Docker container and run it
<div class="codeBlock"># create working directories<br />
mkdir /home/$USER/docker/mariadb -p &amp;&amp; mkdir /home/$USER/docker/owncloud -p<br />
# set owner of working directories<br />
sudo chown &quot;$USER&quot;:&quot;$USER&quot; /home/&quot;$USER&quot;/docker -R<br />
# create owncloud network<br />
docker network create owncloud<br />
# run the mariadb docker container<br />
docker run -d --name mariadb --network owncloud --network-alias db -e MYSQL_ROOT_PASSWORD=r00tp@ss -e MYSQL_USER=owncloud_rw -e MYSQL_PASSWORD=OwnCl0ud! -e MYSQL_DATABASE=owncloud -v /home/$USER/docker/mariadb:/var/lib/mysql --restart=unless-stopped mariadb:latest<br />
# run the owncloud docker container<br />
docker run -d --name owncloud --network owncloud -p 8080:80 -v /home/$USER/docker/owncloud:/var/www/html --restart=unless-stopped owncloud:latest</div>
</li>
<li>Open a web browser and navigate to http://DNSorIP:8080</li>
<li>The Owncloud setup screen should be displayed</li>
<li>Enter a username and password</li>
<li>Click the storage &amp; database link to expand the section</li>
<li>Select MySQL and fill out the database connetion information as follows
<p>username: owncloud_rw<br />
password: OwnCl0ud!<br />
database name: owncloud<br />
database host: db</p>
</li>
<li>Click Finish Setup</li>
<li>After a few moments of setup Owncloud will be up and running</li>
<li>Login with the username and password created a moment ago</li>
</ol>
<p>Documentation: <a href="https://hub.docker.com/_/nextcloud" target="_blank">https://hub.docker.com/_/owncloud</a></p>
</div>
</div>
</body>
</html>