<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Docker &#8211; Choose a job you love</title>
	<atom:link href="https://cajyl.com/en/category/operating-system/docker/feed/" rel="self" type="application/rss+xml" />
	<link>https://cajyl.com</link>
	<description>and you will never work a day</description>
	<lastBuildDate>Thu, 15 Aug 2024 04:26:53 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://cajyl.com/wp-content/uploads/2024/07/73130396cee06279d984fbd48e98a35d-80x80.webp</url>
	<title>Docker &#8211; Choose a job you love</title>
	<link>https://cajyl.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guide &#8211; Obsidian with free, self-hosted, instant sync</title>
		<link>https://cajyl.com/en/guide-obsidian-with-free-self-hosted-instant-sync/</link>
					<comments>https://cajyl.com/en/guide-obsidian-with-free-self-hosted-instant-sync/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Thu, 15 Aug 2024 04:26:53 +0000</pubDate>
				<category><![CDATA[Docker Compose]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3565</guid>

					<description><![CDATA[Docker Compose Below is the docker compose file just to get CouchDB up and running: version: &#34;3.8&#34; services: couchdb-obsidian-livesync: container_name: obsidian-livesync #shortened name image: couchdb:3.3.3 environment: - PUID=99 - PGID=100&#8230;]]></description>
										<content:encoded><![CDATA[<h2 id="docker-compose">Docker Compose</h2>
<p>Below is the docker compose file just to get CouchDB up and running:</p>
<pre><code class="language-docker-compose">version: &quot;3.8&quot;

services:
  couchdb-obsidian-livesync:
    container_name: obsidian-livesync #shortened name
    image: couchdb:3.3.3
    environment:
      - PUID=99
      - PGID=100
      - UMASK=0022
      - TZ=Asia/Ho_Chi_Minh
      - COUCHDB_USER=obsidian_user # optionally change me
      - COUCHDB_PASSWORD=obsidian_password # definitely change me
    volumes:
      - ./data:/opt/couchdb/data
      - ./etc/local.d:/opt/couchdb/etc/local.d
      - ./log:/opt/couchdb/var/log/couchdb # Added log volume
    ports:
      - &quot;5984:5984&quot;
    restart: unless-stopped
    labels:
      - net.unraid.docker.webui=http://[IP]:[PORT:5984]/_utils # This might need to be manually adjusted for the web UI
      - net.unraid.docker.icon=https://couchdb.apache.org/image/couch@2x.png
      - net.unraid.docker.shell=bash
    healthcheck:
      test: [&quot;CMD&quot;, &quot;curl&quot;, &quot;-f&quot;, &quot;http://localhost:5984/_up&quot;] # Healthcheck for CouchDB
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 5s
</code></pre>
<h2 id="couchdb-initial-configuration">CouchDB &#8211; Initial Configuration</h2>
<ol>
<li>
<p>Go to the CouchDB admin page by going here: <a href="http://10.10.10.13:5984/_utils">http://10.10.10.13:5984/_utils</a> make sure to use your server&#8217;s IP address.</p>
</li>
<li>
<p>Login using the credentials you set in the Docker compose file.</p>
</li>
<li>
<p>Click on the <code>&lt;-&gt;</code> icon on the top left, it will expand the menu from simple icons to icons with text which will make following this guide easier.</p>
</li>
<li>
<p>Click on <code>Setup</code> on the left menu.</p>
</li>
<li>
<p>Click on <code>Configure as Single Node</code> and enter the same credentials from the Docker compose file into the <code>Specify your Admin credentials</code> fields.</p>
</li>
<li>
<p>Leave everything else the same and click <code>Configure Node</code>.</p>
</li>
</ol>
<h2 id="couchdb-verify-installation">CouchDB &#8211; Verify Installation</h2>
<ol>
<li>
<p>Let&#8217;s verify the CouchDB installation by clicking <code>Verify</code> on the left menu.</p>
</li>
<li>
<p>Click <code>Verify Installation</code> and if everything is good, a popup banner should popup saying <code>Success! Your CouchDB installation is working. Time to Relax.</code> along with 6 check marks next to each item in the table.</p>
</li>
</ol>
<h2 id="couchdb-create-database">CouchDB &#8211; Create Database</h2>
<ol>
<li>
<p>Click on the <code>Databases</code> on the left menu.</p>
</li>
<li>
<p>Click on <code>Create Database</code> on the top right.</p>
</li>
<li>
<p>Under <code>Database Name</code> enter <code>obsidiandb</code>, or whatever you like. Advice: if you intend to use this setup for multiple users, each user will need their own database, so I recommend naming the database to include the user&#8217;s first name like: <code>obsidiandb_john</code> or <code>obsidiandb_jane</code> just to make it easier in the future.</p>
</li>
<li>
<p>Under <code>Partitioning</code> select <code>Non-partitioned - recommended for most workloads</code>. Once the database is created, you should be redirected to the new database&#8217;s config page. You don&#8217;t have to do anything here.</p>
</li>
</ol>
<h2 id="couchdb-configuration">CouchDB &#8211; Configuration</h2>
<ol>
<li>
<p>Click on <code>Configuration</code> on the left main menu. The following 9 config entries are what the script was intended to do automatically but I wanted to do it manually. Click on <code>+ Add Option</code> on the top right for each entry:</p>
</li>
<li>
<p>Section: <code>chttpd</code> Name: <code>require_valid_user</code> Value: <code>true</code></p>
</li>
<li>
<p>Section: <code>chttpd_auth</code> Name: <code>require_valid_user</code> Value: <code>true</code></p>
</li>
<li>
<p>Section: <code>httpd</code> Name: <code>WWW-Authenticate</code> Value: <code>Basic realm=&quot;couchdb&quot;</code></p>
</li>
<li>
<p>Section: <code>httpd</code> Name: <code>enable_cors</code> Value: <code>true</code></p>
</li>
<li>
<p>Section: <code>chttpd</code> Name: <code>enable_cors</code> Value: <code>true</code></p>
</li>
<li>
<p>Section: <code>chttpd</code> Name: <code>max_http_request_size</code> Value: <code>4294967296</code></p>
</li>
<li>
<p>Section: <code>couchdb</code> Name: <code>max_document_size</code> Value: <code>50000000</code></p>
</li>
<li>
<p>Section: <code>cors</code> Name: <code>credentials</code> Value: <code>true</code></p>
</li>
<li>
<p>Section: <code>cors</code> Name: <code>origins</code> Value: `app://obsidian.md,capacitor://localhost,http://localhost</p>
</li>
</ol>
<h2 id="obsidian-windows-11-client">Obsidian &#8211; Windows 11 Client</h2>
<ol>
<li>
<p>Download and install the Windows 11 Obsidian client from <a href="https://obsidian.md/download">here.</a></p>
</li>
<li>
<p>Once installed, open Obsidian.</p>
</li>
<li>
<p>Next to <code>Create new vault</code> click the <code>Create</code> button next.</p>
</li>
<li>
<p>In the <code>Vault name</code> field, name your Vault whatever you like, I simply named mine <code>Vault</code>. You can think of a vault as a &quot;master folder&quot; that contains all your folders and notes. Some users have different vaults for different aspects of their lives, such as <code>Work</code> or <code>Personal</code> but I keep everything under one vault for ease of use.</p>
</li>
<li>
<p>Next setting is <code>Location</code>, click <code>Browse</code>. This is where your vault will be locally saved. I created an <code>Obsidian</code> folder in the <code>Documents</code> folder but you can put it anywhere you like.</p>
</li>
<li>
<p>Click <code>Create</code> and Obsidian should open up to your newly created vault with 3 window panes. Next step is to setup the LiveSync plugin.</p>
</li>
</ol>
<h2 id="obsidian-livesync-plugin">Obsidian &#8211; LiveSync Plugin</h2>
<ol>
<li>
<p>Click on <code>options</code> button (sprocket icon) on the bottom left area.</p>
</li>
<li>
<p>Click <code>Community plugins</code> and click on the <code>Turn on community plugins</code> button after reading the risk disclosure.</p>
</li>
<li>
<p>Next to <code>Community plugins</code> click on the <code>Browse</code> button.</p>
</li>
<li>
<p>Search for <code>Self-hosted LiveSync</code>.</p>
</li>
<li>
<p>Only 1 plugin should show up and that&#8217;s the one by <code>voratamoroz</code>, click on it.</p>
</li>
<li>
<p>Click the <code>Install</code> button and let it install.</p>
</li>
<li>
<p>Click the <code>Enable</code> button.</p>
</li>
<li>
<p>Click <code>Open setting dialog</code> button.</p>
</li>
<li>
<p>Click <code>Options</code> button.</p>
</li>
<li>
<p>Under <code>Settings for Self-hosted LiveSync.</code> you should see a row of 8 buttons, click on the 4th button with the <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f6f0.png" alt="🛰" class="wp-smiley" style="height: 1em; max-height: 1em;" /> satellite icon.</p>
</li>
<li>
<p>This is where we will enter the self-hosted CouchDB details. Next to <code>Remote Type</code> make sure <code>CouchDB</code> is selected from the drop down menu.</p>
</li>
<li>
<p>In the <code>URI</code> field type <a href="http://10.10.10.13:5984">http://10.10.10.13:5984</a> make sure to change to your server IP and port. (Open the container online with HAProxy)</p>
</li>
<li>
<p>In the <code>Username</code> field type <code>osidian_user</code> or whatever you used in the docker compose.</p>
</li>
<li>
<p>Same for <code>Password</code> field.</p>
</li>
<li>
<p>In the <code>Database name</code> field type <code>obsidiandb</code> or whatever you named your database earlier in CouchDB.</p>
</li>
<li>
<p>Click the <code>Test</code> button to test the connection to the CouchDB database. Assuming everything is working properly a text popup should say <code>Connected to obsidiandb successfully</code>.</p>
</li>
<li>
<p>Click the <code>Check</code> button to confirm the database was configured properly, there should be a purple checkmark next to each line item. If not, there should be a <code>Fix</code> button next to the item that you can click for it to either create or correct for you, but I prefer to manually do it myself.</p>
</li>
<li>
<p>Assuming everything is good up to this point, click the <code>Apply</code> button next to <code>Apply Settings</code>.</p>
</li>
<li>
<p><strong>Optional but recommended:</strong> scroll down to the <code>End-to-end encryption</code> and toggle it on and set a passphrase. Please remember this passphrase as all your other devices must have matching passphrases for it to be able to decrypt your notes. Click the red button <code>Just apply</code>.</p>
</li>
<li>
<p>On the top menu, under <code>Settings for Self-hosted LiveSync.</code> you should see a row of 8 buttons, click on the 5th button with the <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f504.png" alt="🔄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> refresh icon.</p>
</li>
<li>
<p>Next to <code>Sync mode</code> select <code>LiveSync</code> from the drop down menu.</p>
</li>
<li>
<p>You can close the <code>settings</code> windows out, on the top right of the notes you should see <code>Sync: zZz</code> which means everything is working properly and the sync is in standby mode until you start typing something.</p>
</li>
<li>
<p>Repeat the above instructions for all other devices.</p>
</li>
</ol>
<h2 id="reverse-proxy">Reverse Proxy</h2>
<p>I highly recommend putting this behind at least a reverse proxy, I use Nginx Proxy Manager in conjunction with Cloudflare Tunnels. You will definitely need to if you plan on using mobile devices as they require HTTPS.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/guide-obsidian-with-free-self-hosted-instant-sync/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3565</post-id>	</item>
		<item>
		<title>PeerTube: Decentralised Video Sharing Platform</title>
		<link>https://cajyl.com/en/peertube-decentralised-video-sharing-platform/</link>
					<comments>https://cajyl.com/en/peertube-decentralised-video-sharing-platform/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Fri, 19 Jul 2024 02:55:39 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Docker Container]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3425</guid>

					<description><![CDATA[PeerTube is an open source platform for creating a decentralised video-sharing network, offering an alternative to centralised platforms such as YouTube. Thanks to its decentralised structure, PeerTube allows anyone to&#8230;]]></description>
										<content:encoded><![CDATA[
<p><a href="https://joinpeertube.org">PeerTube</a> is an open source platform for creating a decentralised video-sharing network, offering an alternative to centralised platforms such as YouTube. Thanks to its decentralised structure, PeerTube allows anyone to create their own video-sharing server, while interconnecting the various servers to form a global network. This article explores the main advantages of PeerTube and provides a detailed guide to installing it using Docker Compose.</p>



<h2 id="why-choose-peertube" class="wp-block-heading">Why choose PeerTube?</h2>



<h3 id="1-decentralisation" class="wp-block-heading">1. <strong>Decentralisation</strong></h3>



<p>PeerTube is based on a decentralised architecture, which means that videos are hosted on several independent servers instead of a single centralised platform. This reduces dependency on a single entity and improves resilience and confidentiality.</p>



<h3 id="2-open-source-and-free" class="wp-block-heading">2. <strong>Open Source and Free</strong></h3>



<p>PeerTube is entirely open source, allowing users to modify and customise the software to suit their needs. You can visit the <a href="https://github.com/Chocobozzz/PeerTube">PeerTube GitHub repository</a> to access the source code, suggest improvements or report problems.</p>



<h3 id="3-total-control" class="wp-block-heading">3. <strong>Total control</strong></h3>



<p>By hosting your own instance of PeerTube, you have complete control over content, privacy settings and moderation policies. This allows you to create a video sharing environment that perfectly matches your needs and values.</p>



<h3 id="4-interoperability" class="wp-block-heading">4. <strong>Interoperability</strong></h3>



<p>PeerTube allows different PeerTube servers to be interconnected via the ActivityPub protocol, enabling users to share and discover videos between different servers. This encourages a global community while allowing local autonomy.</p>



<h3 id="5-easy-to-install" class="wp-block-heading">5. <strong>Easy to install</strong></h3>



<p>Installing PeerTube via Docker Compose is quick and easy, allowing you to deploy a video sharing server in just a few minutes.</p>



<h2 id="installing-peertube-with-docker-compose" class="wp-block-heading">Installing PeerTube with Docker Compose</h2>



<p>Installing PeerTube via Docker Compose is straightforward. Here is a step-by-step guide to setting up PeerTube on your server.</p>



<h3 id="prerequisites" class="wp-block-heading">Prerequisites</h3>



<p>Before you start, make sure that Docker and Docker Compose are installed on your server. You can install them using the following commands:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install docker.io docker-compose -y
</code></pre>



<h3 id="creating-the-docker-compose-file" class="wp-block-heading">Creating the Docker Compose file</h3>



<p>Create a <code>docker-compose.yml</code> file in a directory of your choice. This file will contain the configuration needed to deploy PeerTube. Use the following code to configure PeerTube:</p>



<pre class="wp-block-code"><code>version: '3'

services:
  peertube:
    image: chocobozzz/peertube:latest
    container_name: peertube
    ports:
      - "9000:9000"
    volumes:
      - ./peertube_data:/var/www/peertube
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgres://peertube:peertube@db:5432/peertube
      - REDIS_URL=redis://redis:6379
    depends_on:
      - db
      - redis
    restart: always

  db:
    image: postgres:latest
    container_name: peertube-db
    volumes:
      - ./db_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_USER=peertube
      - POSTGRES_PASSWORD=peertube
      - POSTGRES_DB=peertube

  redis:
    image: redis:latest
    container_name: peertube-redis
    volumes:
      - ./redis_data:/data
</code></pre>



<h4 id="explanations" class="wp-block-heading">Explanations</h4>



<ul class="wp-block-list">
<li><strong>peertube</strong>:</li>



<li><strong>image</strong>: Indicates the official PeerTube Docker image.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>ports</strong>: Map port 9000 on the container to port 9000 on the host to access the PeerTube web interface.</li>



<li><strong>volumes</strong>: Create a local directory to store persistent PeerTube data. Create the <code>peertube_data</code> directory in the same directory as your <code>docker-compose.yml</code> file.</li>



<li><strong>environment</strong>: Defines the environment variables needed to configure PeerTube.<br></li>



<li><strong>db</strong>:</li>



<li><strong>image</strong>: Indicates the official Docker image of PostgreSQL, the database used by PeerTube.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>volumes</strong>: Create a local directory to store the database data. Create the <code>db_data</code> directory in the same directory as your <code>docker-compose.yml</code> file.</li>



<li><strong>environment</strong>: Defines the environment variables for configuring PostgreSQL.<br></li>



<li><strong>again</strong>:</li>



<li><strong>image</strong>: Indicates the official Redis Docker image, used for caching and sessions.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>volumes</strong>: Create a local directory to store Redis data. Create the <code>redis_data</code> directory in the same directory as your <code>docker-compose.yml</code> file.<br></li>
</ul>



<h3 id="launch-peertube" class="wp-block-heading">Launch PeerTube</h3>



<p>Once you have created the <code>docker-compose.yml</code> file, launch PeerTube with the following command:</p>



<pre class="wp-block-code"><code>sudo docker-compose up -d
</code></pre>



<p>This command downloads the Docker images, creates the containers, and starts PeerTube, PostgreSQL, and Redis in the background. You can access the PeerTube web interface by opening a browser and navigating to <code>http://:9000</code>.</p>



<h3 id="initial-configuration" class="wp-block-heading">Initial configuration</h3>



<p>When you first connect to the PeerTube interface, follow the on-screen instructions to complete the initial configuration. You will then be able to create users, customise settings and start sharing videos.</p>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p>PeerTube is a powerful and flexible platform for creating and managing a decentralised video-sharing network. With its easy installation via Docker Compose and extensive customisation capabilities, PeerTube is an excellent choice for those looking to manage their own video-sharing platform while respecting decentralisation and privacy.</p>



<h3 id="useful-links" class="wp-block-heading">Useful links</h3>



<ul class="wp-block-list">
<li><a href="https://joinpeertube.org">PeerTube official website</a></li>



<li><a href="https://github.com/Chocobozzz/PeerTube">PeerTube GitHub repository</a></li>



<li><a href="https://docs.joinpeertube.org">Official PeerTube documentation</a><br></li>
</ul>



<p>Share your experiences with PeerTube and ask your questions in the comments section!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/peertube-decentralised-video-sharing-platform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3425</post-id>	</item>
		<item>
		<title>Plex : The Complete Solution for Your Personal Multimedia Centre</title>
		<link>https://cajyl.com/en/plex-the-complete-solution-for-your-personal-multimedia-centre/</link>
					<comments>https://cajyl.com/en/plex-the-complete-solution-for-your-personal-multimedia-centre/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Fri, 19 Jul 2024 02:55:29 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Docker Container]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3410</guid>

					<description><![CDATA[Plex is a powerful solution for creating a personal multimedia centre at home. With Plex, you can organise and distribute your films, TV series, music and photos across all your&#8230;]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.plex.tv">Plex</a> is a powerful solution for creating a personal multimedia centre at home. With Plex, you can organise and distribute your films, TV series, music and photos across all your devices. With its elegant interface and advanced features, Plex makes managing your media content a simple and enjoyable experience. This article explores the benefits of Plex and provides a detailed guide to installing it using Docker Compose.</p>



<h2 id="why-choose-plex" class="wp-block-heading">Why choose Plex?</h2>



<h3 id="1-centralised-organisation" class="wp-block-heading">1. <strong>Centralised organisation</strong></h3>



<p>Plex lets you centralise all your media &#8211; whether films, TV series, music or photos &#8211; in a single library that can be accessed from any device. You can easily organise and categorise your content for quick and intuitive access.</p>



<h3 id="2-streaming-on-all-devices" class="wp-block-heading">2. <strong>Streaming on All Devices</strong></h3>



<p>Plex supports the streaming of your media to a variety of devices, including smartphones, tablets, computers, and smart TVs. Whether you&#8217;re at home or on the move, you can access your media wherever you are.</p>



<h3 id="3-elegant-and-intuitive-interface" class="wp-block-heading">3. <strong>Elegant and intuitive interface</strong></h3>



<p>The Plex interface is modern and easy to navigate. It offers detailed information about your media, such as film posters, series summaries and information about music artists, enhancing your viewing experience.</p>



<h3 id="4-advanced-features" class="wp-block-heading">4. <strong>Advanced features</strong></h3>



<p>Plex offers advanced features such as offline synchronisation, metadata management and the ability to share your library with other users. The Plex Pass version offers even more features, such as live streaming and TV recording.</p>



<h3 id="5-ease-of-installation" class="wp-block-heading">5. <strong>Ease of installation</strong></h3>



<p>Installing Plex via Docker Compose is quick and easy, allowing you to quickly configure your personal media server.</p>



<h2 id="installing-plex-with-docker-compose" class="wp-block-heading">Installing Plex with Docker Compose</h2>



<p>Installing Plex via Docker Compose is a straightforward process. Here&#8217;s a step-by-step guide to configuring Plex on your server.</p>



<h3 id="prerequisites" class="wp-block-heading">Prerequisites</h3>



<p>Before you start, make sure that Docker and Docker Compose are installed on your server. You can install them using the following commands:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install docker.io docker-compose -y
</code></pre>



<h3 id="creating-the-docker-compose-file" class="wp-block-heading">Creating the Docker Compose file</h3>



<p>Create a <code>docker-compose.yml</code> file in a directory of your choice. This file will contain the configuration needed to deploy Plex. Use the following code to configure Plex:</p>



<pre class="wp-block-code"><code>version: '3'

services:
  plex:
    image: plexinc/pms-docker:latest
    container_name: plex
    ports:
      - "32400:32400"
    volumes:
      - ./config:/config
      - ./data:/data
    restart: always
    environment:
      - PLEX_CLAIM=your_plex_claim_token
      - ADVERTISE_IP=http://&lt;your-server-ip&gt;:32400/
      - PLEX_UID=1000
      - PLEX_GID=1000
</code></pre>



<h4 id="explanations" class="wp-block-heading">Explanations</h4>



<ul class="wp-block-list">
<li><strong>image</strong>: Indicates the official Plex Docker image.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>ports</strong>: Maps port 32400 on the container to port 32400 on the host to access the Plex web interface.</li>



<li><strong>volumes</strong>: Set up local directories to store Plex configurations and data. Create the <code>config</code> and <code>data</code> directories in the same directory as your <code>docker-compose.yml</code> file.</li>



<li><strong>environment</strong>: Sets the environment variables required for Plex. Replace <code>your_plex_claim_token</code> with your Plex claim token. You can obtain a token from <a href="https://www.plex.tv/claim/">Plex Claim</a>.<br></li>
</ul>



<h3 id="launch-plex" class="wp-block-heading">Launch Plex</h3>



<p>Once you have created the <code>docker-compose.yml</code> file, run Plex with the following command:</p>



<pre class="wp-block-code"><code>sudo docker-compose up -d
</code></pre>



<p>This command downloads the Docker image, creates the container and starts Plex in the background. You can access the Plex web interface by opening a browser and navigating to <code>http://:32400/web</code>.</p>



<h3 id="initial-configuration" class="wp-block-heading">Initial configuration</h3>



<p>When you first connect to the Plex interface, you&#8217;ll need to follow the on-screen instructions to complete the initial configuration. You will be able to add your media libraries, configure your server settings, and invite users to share your content.</p>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p>Plex is a complete solution for managing and distributing your personal media. Easy to install via Docker Compose and packed with features, it transforms the way you access your media content. Using Plex, you can create a personal media centre that meets all your entertainment needs.</p>



<h3 id="useful-links" class="wp-block-heading">Useful links</h3>



<ul class="wp-block-list">
<li><a href="https://www.plex.tv">Official Plex website</a></li>



<li><a href="https://github.com/plexinc">Plex GitHub repository</a></li>



<li><a href="https://support.plex.tv/articles/200250850-plex-media-server/">Official Plex documentation</a><br></li>
</ul>



<p>Share your experiences with Plex and ask your questions in the comments section!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/plex-the-complete-solution-for-your-personal-multimedia-centre/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3410</post-id>	</item>
		<item>
		<title>Portainer: Simplified management of Docker containers</title>
		<link>https://cajyl.com/en/portainer-simplified-management-of-docker-containers/</link>
					<comments>https://cajyl.com/en/portainer-simplified-management-of-docker-containers/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Fri, 19 Jul 2024 02:54:47 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Docker Container]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3406</guid>

					<description><![CDATA[Portainer is an open source tool that simplifies the management of Docker containers thanks to a user-friendly graphical user interface (GUI). Whether you&#8217;re an experienced system administrator or new to&#8230;]]></description>
										<content:encoded><![CDATA[
<p><a href="https://www.portainer.io">Portainer</a> is an open source tool that simplifies the management of Docker containers thanks to a user-friendly graphical user interface (GUI). Whether you&#8217;re an experienced system administrator or new to the world of Docker, Portainer makes it easy to manage and orchestrate your containers with an intuitive interface. This article explores the key benefits of Portainer and provides a step-by-step guide to installing it using Docker Compose.</p>



<h2 id="why-choose-portainer" class="wp-block-heading">Why choose Portainer?</h2>



<h3 id="1-user-friendly-graphical-interface" class="wp-block-heading">1. <strong>User-friendly graphical interface</strong></h3>



<p>Portainer offers an easy-to-use graphical interface for managing your Docker containers. You can view, deploy and manage your services, volumes and networks from a centralised dashboard.</p>



<h3 id="2-multi-host-management" class="wp-block-heading">2. <strong>Multi-host management</strong></h3>



<p>Portainer allows you to manage multiple Docker hosts from a single interface. This is particularly useful for production environments or clustered deployments, where you can monitor and control several Docker servers at the same time.</p>



<h3 id="3-image-and-container-management" class="wp-block-heading">3. <strong>Image and container management</strong></h3>



<p>With Portainer, you can easily pull, delete and manage Docker images. It also makes it easy to deploy new containers and manage those already running.</p>



<h3 id="4-ease-of-installation" class="wp-block-heading">4. <strong>Ease of installation</strong></h3>



<p>Installing Portainer is quick and easy, especially when using Docker Compose. You can configure and start up Portainer in just a few minutes.</p>



<h3 id="5-security-and-user-management" class="wp-block-heading">5. <strong>Security and User Management</strong></h3>



<p>Portainer allows you to manage users and permissions, giving you granular control over access and authorised operations in your Docker environment.</p>



<h2 id="installing-portainer-with-docker-compose" class="wp-block-heading">Installing Portainer with Docker Compose</h2>



<p>Installing Portainer via Docker Compose is a simple process. Here&#8217;s a step-by-step guide to help you set up Portainer on your server.</p>



<h3 id="prerequisites" class="wp-block-heading">Prerequisites</h3>



<p>Before you start, make sure that Docker and Docker Compose are installed on your server. You can install them using the following commands:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install docker.io docker-compose -y
</code></pre>



<h3 id="creating-the-docker-compose-file" class="wp-block-heading">Creating the Docker Compose file</h3>



<p>Create a <code>docker-compose.yml</code> file in a directory of your choice. This file will contain the configuration required to deploy Portainer. Use the following code to configure Portainer:</p>



<pre class="wp-block-code"><code>version: '3'

services:
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: always

volumes:
  portainer_data:
</code></pre>



<h4 id="explanations" class="wp-block-heading">Explanations</h4>



<ul class="wp-block-list">
<li><strong>image</strong>: Indicates the official Portainer Docker image.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>ports</strong>: Maps port 9000 on the container to port 9000 on the host to access the web interface.</li>



<li><strong>volumes</strong>: Mounts the Docker socket and a volume for storing persistent Portainer data.</li>



<li><strong>restart</strong>: Configures the container to restart automatically in the event of a problem.<br></li>
</ul>



<h3 id="launch-portainer" class="wp-block-heading">Launch Portainer</h3>



<p>Once you have created the <code>docker-compose.yml</code> file, run Portainer with the following command:</p>



<pre class="wp-block-code"><code>sudo docker-compose up -d
</code></pre>



<p>This command downloads the Docker image, creates the container and starts Portainer in the background. You can access the Portainer web interface by opening a browser and navigating to <code>http://:9000</code>.</p>



<h3 id="initial-configuration" class="wp-block-heading">Initial configuration</h3>



<p>When you first connect to the Portainer interface, you will need to create an administrator user and configure access to your Docker hosts. Follow the on-screen instructions to complete the initial configuration.</p>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p>Portainer is an essential tool for anyone working with Docker. With its user-friendly graphical interface and powerful features, it makes it easy to manage Docker containers and hosts. Installation with Docker Compose is quick and easy, allowing you to deploy Portainer in no time.</p>



<h3 id="useful-links" class="wp-block-heading">Useful links</h3>



<ul class="wp-block-list">
<li><a href="https://www.portainer.io">Official Portainer website</a></li>



<li><a href="https://github.com/portainer/portainer">Portainer GitHub repository</a></li>



<li><a href="https://docs.portainer.io">Official Portainer documentation</a><br></li>
</ul>



<p>Share your experiences with Portainer and ask your questions in the comments section!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/portainer-simplified-management-of-docker-containers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3406</post-id>	</item>
		<item>
		<title>Uptime Kuma : Simple and Efficient Open Source Monitoring with Docker</title>
		<link>https://cajyl.com/en/uptime-kuma-simple-and-efficient-open-source-monitoring-with-docker/</link>
					<comments>https://cajyl.com/en/uptime-kuma-simple-and-efficient-open-source-monitoring-with-docker/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Fri, 19 Jul 2024 01:06:22 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[Open Source]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3321</guid>

					<description><![CDATA[When it comes to monitoring online services, Uptime Kuma stands out as a powerful open source solution, offering a free alternative to paid monitoring services such as Uptime Robot and&#8230;]]></description>
										<content:encoded><![CDATA[
<p>When it comes to monitoring online services, <a href="https://uptime.kuma">Uptime Kuma</a> stands out as a powerful open source solution, offering a free alternative to paid monitoring services such as Uptime Robot and Pingdom. With its user-friendly interface and extensive functionality, Uptime Kuma is ideal for monitoring your websites and network services effectively. This article explores the benefits of Uptime Kuma and provides a detailed guide to installing it using Docker Compose.</p>



<h2 id="why-choose-uptime-kuma" class="wp-block-heading">Why choose Uptime Kuma?</h2>



<h3 id="1-open-source-and-free" class="wp-block-heading">1. <strong>Open Source and Free</strong></h3>



<p>Uptime Kuma is an open source tool, which means that you can access the source code free of charge, modify it and adapt it to your needs. This approach guarantees transparency and flexibility. You can consult the <a href="https://github.com/louislam/uptime-kuma">Uptime Kuma GitHub repository</a> to access the code, report bugs or contribute to development.</p>



<h3 id="2-ease-of-installation-and-use" class="wp-block-heading">2. <strong>Ease of installation and use</strong></h3>



<p>Uptime Kuma is designed to be easy to install and use. Its <a href="https://github.com/louislam/uptime-kuma">official documentation</a> guides users through the configuration steps. The user interface is intuitive, enabling rapid management of monitors and simplified configuration of alerts.</p>



<h3 id="3-multimodal-surveillance" class="wp-block-heading">3. <strong>Multimodal surveillance</strong></h3>



<p>Uptime Kuma offers comprehensive monitoring using multiple protocols such as HTTP(s), TCP, and ICMP. This makes it possible to monitor various types of services and quickly detect problems before they affect users.</p>



<h3 id="4-alerts-and-notifications" class="wp-block-heading">4. <strong>Alerts and Notifications</strong></h3>



<p>You can set up alerts to let you know if there are any problems with your services. Uptime Kuma supports a variety of notification channels, including email and Slack, ensuring that you stay informed of interruptions or failures in real time.</p>



<h3 id="5-alternative-to-paid-services" class="wp-block-heading">5. <strong>Alternative to Paid Services</strong></h3>



<p>Uptime Kuma is a free alternative to paid monitoring tools such as Uptime Robot and Pingdom. It offers similar functionality at no cost, making it an attractive option for users looking to monitor their services at no extra cost.</p>



<h2 id="installing-uptime-kuma-with-docker-compose" class="wp-block-heading">Installing Uptime Kuma with Docker Compose</h2>



<p>Installing Uptime Kuma via Docker Compose is quick and easy. Here&#8217;s a step-by-step guide to configuring this tool on your server.</p>



<h3 id="prerequisites" class="wp-block-heading">Prerequisites</h3>



<p>Before installing Uptime Kuma, make sure that Docker and Docker Compose are installed on your server. You can install them using the following commands:</p>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install docker.io docker-compose -y
</code></pre>



<h3 id="creating-the-docker-compose-file" class="wp-block-heading">Creating the Docker Compose file</h3>



<p>Create a <code>docker-compose.yml</code> file in a directory of your choice. This file will contain the configuration needed to deploy Uptime Kuma. Use the following code to configure Uptime Kuma:</p>



<pre class="wp-block-code"><code>version: '3'

services:
  uptime-kuma:
    image: louislam/uptime-kuma:latest
    container_name: uptime-kuma
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./data:/app/data
    restart: always
</code></pre>



<h4 id="explanations" class="wp-block-heading">Explanations</h4>



<ul class="wp-block-list">
<li><strong>image</strong>: Indicates the official Uptime Kuma Docker image.</li>



<li><strong>container_name</strong>: Name of the container for easy identification.</li>



<li><strong>ports</strong>: Maps container ports to host ports. Ports 80 and 443 are exposed for HTTP and HTTPS.</li>



<li><strong>volumes</strong>: Create a local volume to store persistent data. Create the <code>data</code> directory in the same directory as your <code>docker-compose.yml</code> file.</li>



<li><strong>restart</strong>: Configures the container to restart automatically in the event of a problem.<br></li>
</ul>



<h3 id="lancer-uptime-kuma" class="wp-block-heading">Lancer Uptime Kuma</h3>



<p>Once you have created the <code>docker-compose.yml</code> file, run Uptime Kuma with the following command:</p>



<pre class="wp-block-code"><code>sudo docker-compose up -d
</code></pre>



<p>This command downloads the Docker image, creates the container and starts Uptime Kuma in the background. You can access the Uptime Kuma web interface by opening a browser and navigating to <code>http://</code>.</p>



<h3 id="initial-configuration" class="wp-block-heading">Initial configuration</h3>



<p>After accessing the Uptime Kuma interface, follow the on-screen instructions to complete the initial configuration. You&#8217;ll be able to add services to be monitored, set up alerts and customise settings to suit your needs.</p>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p>Uptime Kuma is an open source monitoring solution that offers a free and effective alternative to paid monitoring tools. With its extensive functionality and user-friendly interface, it&#8217;s ideal for monitoring your online services. Using Docker Compose for installation, you can easily deploy Uptime Kuma on your server.</p>



<h3 id="useful-links" class="wp-block-heading">Useful links</h3>



<ul class="wp-block-list">
<li><a href="https://uptime.kuma">Uptime Kuma official website</a></li>



<li><a href="https://github.com/louislam/uptime-kuma">Uptime Kuma GitHub repository</a></li>



<li><a href="https://github.com/louislam/uptime-kuma">Official Uptime Kuma documentation</a><br></li>
</ul>



<p>Share your impressions and ask your questions in the comments section!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/uptime-kuma-simple-and-efficient-open-source-monitoring-with-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3321</post-id>	</item>
		<item>
		<title>Docker: A Complete Guide to Maximising Your Deployments</title>
		<link>https://cajyl.com/en/docker-a-complete-guide-to-maximising-your-deployments/</link>
					<comments>https://cajyl.com/en/docker-a-complete-guide-to-maximising-your-deployments/#respond</comments>
		
		<dc:creator><![CDATA[Augustin]]></dc:creator>
		<pubDate>Thu, 18 Jul 2024 22:46:38 +0000</pubDate>
				<category><![CDATA[Docker]]></category>
		<category><![CDATA[Docker Compose]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://cajyl.com/?p=3303</guid>

					<description><![CDATA[Docker has become a must-have for developers and system administrators looking to simplify the deployment of their applications. By encapsulating applications in lightweight containers, Docker enables unprecedented portability, efficiency and&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Docker has become a must-have for developers and system administrators looking to simplify the deployment of their applications. By encapsulating applications in lightweight containers, Docker enables unprecedented portability, efficiency and scalability. In this article, we&#8217;ll explore in detail the benefits of Docker, how to install it quickly, and some useful commands for managing your containers.</p>



<h2 id="introduction-to-docker" class="wp-block-heading">Introduction to Docker</h2>



<h3 id="what-is-docker" class="wp-block-heading">What is Docker?</h3>



<p>Docker is an open source platform that automates the deployment of applications in software containers. These containers are lightweight, fast and portable, and contain everything an application needs to run: code, runtime, system libraries, etc.</p>



<h3 id="why-use-docker" class="wp-block-heading">Why use Docker?</h3>



<p>Here are some of the main advantages of Docker :</p>



<ol class="wp-block-list">
<li><strong>Portability</strong>: Docker containers can be run anywhere &#8211; on your local machine, in the cloud, or on on-premise servers &#8211; without having to worry about differences in system configuration.</li>



<li><strong>Isolation</strong>: Each container operates in isolation, which means that applications do not overlap or cause conflicts.</li>



<li><strong>Resource efficiency</strong>: Unlike virtual machines, containers share the same system kernel and don&#8217;t need a complete OS, which significantly reduces resource usage.</li>



<li><strong>Ease of management</strong>: Docker simplifies the process of updating and deploying applications, thanks to tools like Docker Compose.<br></li>
</ol>



<h2 id="quick-installation-of-docker" class="wp-block-heading">Quick installation of Docker</h2>



<h3 id="installing-docker" class="wp-block-heading">Installing Docker</h3>



<p>To install Docker on a Debian-based distribution such as Ubuntu, run the following command:</p>



<pre class="wp-block-code"><code>sudo apt update &amp;&amp; sudo apt install docker.io apparmor -y
</code></pre>



<h3 id="installing-docker-compose" class="wp-block-heading">Installing Docker Compose</h3>



<p>Docker Compose is a tool that lets you define and manage multi-container applications. To install it, use the following commands:</p>



<pre class="wp-block-code"><code>sudo curl -L "https://github.com/docker/compose/releases/download/v2.19.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
</code></pre>



<h3 id="checking-the-installation" class="wp-block-heading">Checking the installation</h3>



<p>To check that Docker Compose has been correctly installed, run :</p>



<pre class="wp-block-code"><code>docker-compose --version
</code></pre>



<h2 id="useful-commands-for-docker" class="wp-block-heading">Useful commands for Docker</h2>



<h3 id="creating-and-launching-containers-with-docker-compose" class="wp-block-heading">Creating and launching containers with Docker Compose</h3>



<p>To create and launch containers defined in a <code>docker-compose.yml</code> file, use :</p>



<pre class="wp-block-code"><code>sudo docker-compose up --build --remove-orphans -d
</code></pre>



<h3 id="deleting-containers-with-docker-compose" class="wp-block-heading">Deleting containers with Docker Compose</h3>



<p>To stop and delete containers, networks and volumes defined in the <code>docker-compose.yml</code> file :</p>



<pre class="wp-block-code"><code>sudo docker-compose down
</code></pre>



<h3 id="updating-a-container" class="wp-block-heading">Updating a container</h3>



<p>To update a container, follow these steps:</p>



<ol class="wp-block-list">
<li>Stop containers :<br></li>



<li>List Docker images :<br></li>



<li>Delete the image of the container to be updated:<br></li>



<li>Recreate and relaunch containers :<br></li>
</ol>



<h3 id="accessing-a-container-via-ssh" class="wp-block-heading">Accessing a container via SSH</h3>



<p>To access a running container via SSH :</p>



<pre class="wp-block-code"><code>sudo docker exec -it container-name /bin/bash
</code></pre>



<p>Note: Use <code>/bin/sh</code> if <code>/bin/bash</code> is not available.</p>



<pre class="wp-block-code"><code>sudo docker exec -it container-name /bin/sh
</code></pre>



<h3 id="view-container-logs" class="wp-block-heading">View container logs</h3>



<p>To monitor a container&#8217;s logs in real time :</p>



<pre class="wp-block-code"><code>sudo docker logs -f container-name
</code></pre>



<h2 id="conclusion" class="wp-block-heading">Conclusion</h2>



<p>Docker offers a powerful and flexible solution for deploying and managing applications. Whether you&#8217;re a developer, system administrator or just curious, Docker can transform the way you work with software. Feel free to try out the commands above and explore further the possibilities offered by this revolutionary technology.</p>



<p>If you have any questions or comments, leave them below! Don&#8217;t forget to share this article if you found it useful.</p>



<p>&#8212;</p>



<p><em>Note: The controls and instructions mentioned in this article are based on a typical configuration and may need to be adjusted to suit your specific environment.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://cajyl.com/en/docker-a-complete-guide-to-maximising-your-deployments/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3303</post-id>	</item>
	</channel>
</rss>
