mirror of
https://github.com/LCTT/TranslateProject.git
synced 2026-09-01 04:27:55 +08:00
Merge branch 'master' of https://github.com/LCTT/TranslateProject into translating
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
[#]: via: "https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faster-speeds/"
|
||||
[#]: author: "Sharon Katta https://www.opensourceforu.com/author/sharon-katta/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: translator: "cool-summer-021"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
@@ -84,7 +84,7 @@ via: https://www.opensourceforu.com/2022/06/wifi-6-promises-much-more-than-faste
|
||||
|
||||
作者:[Sharon Katta][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
译者:[cool-summer-021](https://github.com/cool-summer-021)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
@@ -1,100 +0,0 @@
|
||||
[#]: subject: "Learn the OSI model in 5 minutes"
|
||||
[#]: via: "https://opensource.com/article/22/10/osi-model-network-communications"
|
||||
[#]: author: "Anamika https://opensource.com/users/anamika"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Learn the OSI model in 5 minutes
|
||||
======
|
||||
Get the basics of the Open Systems Interconnection (OSI) framework for conceptualizing communication within a computer system.
|
||||
|
||||
The Open Systems Interconnection (OSI) model is a standard for how computers, servers, and people communicate within a system. It was the first standard model for network communications and was adopted in the early 1980s by all major computer and telecommunications companies.
|
||||
|
||||
The OSI model provides a universal language for describing networks and thinking about them in discrete chunks, or layers.
|
||||
|
||||
### Layers of the OSI model
|
||||
|
||||
The model describes the seven layers through which computer systems communicate over a network.
|
||||
|
||||
1. [Application layer][2]
|
||||
2. [Presentation layer][3]
|
||||
3. [Session layer][4]
|
||||
4. [Transport layer][5]
|
||||
5. [Network layer][6]
|
||||
6. [Data link layer][7]
|
||||
7. [Physical layer][8]
|
||||
|
||||
Each of these layers has its own way of working, with its own set of protocols that distinguish it from the others. This article provides a breakdown of the layers one by one.
|
||||
|
||||
### Application layer
|
||||
|
||||
The application layer is implemented in software. It is the layer used to interact with applications.
|
||||
|
||||
Consider the example of sending a message. The sender will interact with the application layer and send the message. The application layer sends the message to the next layer in the OSI Model, the presentation layer.
|
||||
|
||||
### Presentation layer
|
||||
|
||||
The data from the application layer is forwarded to the presentation layer. The presentation layer receives the data in the form of words, characters, letters, numbers, and so on, and converts them into machine representable binary format. This process is known as translation.
|
||||
|
||||
At this stage, ASCII characters (American Standard Code for Information Interchange) are converted into Extended Binary Coded Decimal Interchange Code (EBCDIC). Before the converted data goes further, it also undergoes encoding and encryption processes, using the SSL protocol for encryption and decryption.
|
||||
|
||||
The presentation layer provides abstraction and assumes that the layers following it will take care of the data forwarded to them from this layer. It also plays a role in compression of the data. The compression can be lossy or lossless, depending on various factors beyond this article's scope.
|
||||
|
||||
### Session layer
|
||||
|
||||
The session layer helps in setting up and managing connections. The main work of this layer is to establish a session. For example, on an online shopping site, a session is created between your computer and the site's server.
|
||||
|
||||
The session layer enables the sending and receiving of data, followed by the termination of connected sessions. Authentication is done before a session is established, followed by authorization. Like the previous layers, the session layer also assumes that, after its work is done, the data will be correctly handled by the subsequent layers.
|
||||
|
||||
### Transport layer
|
||||
|
||||
The transport layer manages data transportation and its own set of protocols for how data will be transferred. The data received here from the session layer is divided into smaller data units called segments. This process is known as segmentation. Every segment contains the source's and destination's port numbers and a sequence number. Port numbers identify the application on which the data needs to be sent. Note that the data is transferred in chunks. The sequence numbers are used to reassemble the segments in the correct order.
|
||||
|
||||
The transport layer takes care of the flow control, or the amount of data transferred at a given time. It also accounts for error control, such as data loss, data corruption, and so on. It makes use of an error-detecting value known as a checksum. The transport layer adds a checksum to every data segment to check whether the sent data is received correctly. Data is then transferred to the network layer.
|
||||
|
||||
### Network layer
|
||||
|
||||
The network layer helps communicate with other networks. It works to transmit received data segments from one computer to another located in a different network. The router lives in the network layer.
|
||||
|
||||
The function of the network layer is logical addressing (IP Addressing). It assigns the sender's and receiver's IP addresses to each data packet to ensure it is received at the correct destination. The network layer then routes the data packets. Load balancing also happens in the network layer to make sure that no overloading takes place. Next, the data is transported to the data link layer.
|
||||
|
||||
### Data link layer
|
||||
|
||||
The data link layer allows direct communication with other devices, such as computers and hosts.
|
||||
|
||||
It receives data packets containing the IP addresses of the sender and receiver from the network layer and does the physical addressing, assigning the media access control (MAC) addresses of the sender and receiver to a data packet to form a frame.
|
||||
|
||||
### Physical layer
|
||||
|
||||
This layer consists of all the hardware and mechanical elements of a system, including the configuration of wires, pins, adapters, and so forth. The data received here by the preceding layers is in the form of 0s and 1s. The physical layer converts this data and transports it to local media via various means, including wires, electrical signals, light signals (as in optical fiber cables), and radio signals (as in WiFi).
|
||||
|
||||
Note that the physical layer works at the receiver's end and transports the received signal to the data link as a frame (by converting it back to bits). The frame is moved to the higher layers, and ultimately the required data is received at the application layer, which is the software.
|
||||
|
||||
### Conclusion
|
||||
|
||||
The OSI model is helpful when you need to describe network architecture or troubleshoot network problems. I hope this article gave you a clearer understanding of the elements this model.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/10/osi-model-network-communications
|
||||
|
||||
作者:[Anamika][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/anamika
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/sites/default/files/lead-images/code_computer_development_programming.png
|
||||
[2]: https://opensource.com/article/22/10/osi-model-network-communications#application-layer
|
||||
[3]: https://opensource.com/article/22/10/osi-model-network-communications#presentation-layer
|
||||
[4]: https://opensource.com/article/22/10/osi-model-network-communications#session-layer
|
||||
[5]: https://opensource.com/article/22/10/osi-model-network-communications#transport-layer
|
||||
[6]: https://opensource.com/article/22/10/osi-model-network-communications#network-layer
|
||||
[7]: https://opensource.com/article/22/10/osi-model-network-communications#data-link-layer
|
||||
[8]: https://opensource.com/article/22/10/osi-model-network-communications#physical-layer
|
||||
@@ -0,0 +1,301 @@
|
||||
[#]: subject: "How to Install the Minimalist ArchBang Linux Distro"
|
||||
[#]: via: "https://itsfoss.com/install-archbang/"
|
||||
[#]: author: "Sreenath https://itsfoss.com/author/sreenath/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
How to Install the Minimalist ArchBang Linux Distro
|
||||
======
|
||||
|
||||
ArchBang is a minimal and lightweight [Arch Linux based distribution][1]. It uses the i3 window manager. With its minimal nature, ArchBang can help you revive your old computer or low-end devices.
|
||||
|
||||
There are two ways to install Arch Bang:
|
||||
|
||||
- Using the guided installer script
|
||||
- Following Arch wiki
|
||||
|
||||
No prizes for guessing that using the guided installer script will be easier to follow.
|
||||
|
||||
In this tutorial, I’ll show you the steps for installing ArchBang with its text-based installer script.
|
||||
|
||||
Please [check if your computer has UEFI or the legacy BIOS system][2]. Some steps are different for them.
|
||||
|
||||
I have performed the demo in a virtual machine. And hence the wifi configuration part is not there. Internet connection is not mandatory here; you can also install it offline. You can connect to wifi from within the system after successfully installing ArchBang.
|
||||
|
||||
Also, this method will remove any other operating system installed on your disk. Please be mindful of that.
|
||||
|
||||
### Download ArchBang Live ISO
|
||||
|
||||
To install ArchBang, you need the live ISO first.
|
||||
|
||||
You can go to their [official website and download the required ISO][3], as shown in the below screenshot.
|
||||
|
||||
![go to archbang iso images to download the iso file from sourceforge][4]
|
||||
|
||||
It brings you to their Sourceforge page. Download the ISO, which is approximately 1.2 GiB in size.
|
||||
|
||||
### Create the Live USB of ArchBang
|
||||
|
||||
Once downloaded, you should make a bootable USB of ArchBang. You can [use software like Balena Etcher][5] to create it. It’s quite simple to use.
|
||||
|
||||
Plug in your USB, browse to the downloaded ISO file and then hit the Flash button.
|
||||
|
||||
![etcher flash][6]
|
||||
|
||||
### Using text-based ArchBang installer
|
||||
|
||||
ArchBang live ISO will bring you to the default i3 desktop with conky running.
|
||||
|
||||
![archbang live iso home screen][7]
|
||||
|
||||
You have two methods to start the installation process:
|
||||
|
||||
- Press **Super + I** (as per desktop conky) to start installation directly.
|
||||
- Press **Super + T** to enter the terminal and use the command: `sudo abinstall`
|
||||
|
||||
A terminal with several options will appear when you do the above step:
|
||||
|
||||
![archbang installer][8]
|
||||
|
||||
The above screenshot shows the main menu of ArchBang installer. You can select each section with the associated number.
|
||||
|
||||
When you complete each category of the above installer, it will return to this menu and you can select the next category by pressing the corresponding number and Enter key.
|
||||
|
||||
Also, the completed sections will be checked with an “x” mark.
|
||||
|
||||
#### Step 1: Select / Set Partition
|
||||
|
||||
On the new installer screen, enter “1” to start [partitioning the disk][9].
|
||||
|
||||
Inside this, select the **Default** option. The installer has several tools to partition the disk, like cfdisk, fdisk, parted, etc. I used fdisk to do the job.
|
||||
|
||||
##### Partitioning for Non-UEFI system
|
||||
|
||||
Once the tool is selected, it will ask to choose the storage device. In my case, it was `/dev/sda` . Select the appropriate choice in your context.
|
||||
|
||||
To start partitioning, enter “n” for a new partition. After that, select **Primary Partition.**
|
||||
|
||||
![creating partition for non uefi system][10]
|
||||
|
||||
For [non-UEFI systems][2], you can create one single root partition for all purposes. So, accept all the default values for “First Sector” and “Last Sector”. Then, press “w” to write the changes.
|
||||
|
||||
On the next screen, you have to choose your filesystem and swap method. In this tutorial, I am using the EXT4 file system and Swap to File as the swap method.
|
||||
|
||||
So set those according to the screenshot.
|
||||
|
||||
![format the disk and select ext4 partition][11]
|
||||
|
||||
##### Partitioning for UEFI system
|
||||
|
||||
For UEFI users, you need to have two partitions, one EFI, with a 550 MB space, and another main root partition with the rest of the space (Swap as a file setting).
|
||||
|
||||
Press n and select **Primary Partition.** Then select the Partition number as 1.
|
||||
|
||||
Accept the default value for “First sector”. Now enter “+550M” as the value for “Last Sector”.
|
||||
|
||||
Once again, press “n” and select **Primary Partition**. Accept the default value for the first and last sectors.
|
||||
|
||||
![create two partitions for efi system][12]
|
||||
|
||||
Press “t” to change the type and select the partition number “1” or `/dev/sda1`, whose type is to be changed from “Linux” to “EFI”.
|
||||
|
||||
Select the partition type as EFI, as shown below:
|
||||
|
||||
![change type of smaller partition to efi][13]
|
||||
|
||||
Press “w” to write the changes. Then it will ask for filesystem selection. Here, you need to select the larger partition as the root partition (/dev/sda2, that is option 2 in the below screenshot).
|
||||
|
||||
![select larger partition for root partition in efi system][14]
|
||||
|
||||
Select EXT4 filesystem. This will again ask for mounting EFI partition.
|
||||
|
||||
![select efi partition][15]
|
||||
|
||||
In this step, you need to select the EFI partition at `/dev/sda1` and choose the mount point as `/boot/efi` . This will ask for format. Give consent by pressing “y”.
|
||||
|
||||
Also, don’t forget to choose the swap to file option.
|
||||
|
||||
#### Step 2: Start ArchBang installation
|
||||
|
||||
This is pretty simple. Select the Install ArchBang option from the main menu by pressing the corresponding number (2 in this case). It will start the installation process.
|
||||
|
||||
![installing archbang progress bar][16]
|
||||
|
||||
You should wait for some time to complete the installation.
|
||||
|
||||
#### Step 3: Set Hostname
|
||||
|
||||
Once installation is completed, Select the 3rd option on the main menu, which is for setting the hostname. You need to enter a hostname.
|
||||
|
||||
![provide hostname and press enter][17]
|
||||
|
||||
#### Step 4: Set Location
|
||||
|
||||
Location/Time Zone is typically mentioned in Zone/City format. I used Asia/Kolkata as the time zone.
|
||||
|
||||
The installer provides the list of available zones and cities; you need to enter the number corresponding to your choice.
|
||||
|
||||
![set time zone info][18]
|
||||
|
||||
Also, set your location the same way.
|
||||
|
||||
#### Step 5: Set Hardware Clock
|
||||
|
||||
You have two options; Set Hardware Clock to UTC or Local Time.
|
||||
|
||||
![set hardware clock time][19]
|
||||
|
||||
There are two time standards:** localtime** and Coordinated Universal Time (UTC). The localtime standard depends on the current time zone, while UTC is the global time standard and is independent of time zone values.
|
||||
|
||||
Enter your choice and press Enter key.
|
||||
|
||||
#### Step 6: Set Locale
|
||||
|
||||
Usually, you set the locale to en_US, if you are unsure what to do. That should be fine for most English-speaking users.
|
||||
|
||||
If you want to use the operating system in some other language like French, Spanish, Dutch etc, you can choose the appropriate locale from the list.
|
||||
|
||||
![set locale][20]
|
||||
|
||||
#### Step 7: Desktop Keyboard Layout
|
||||
|
||||
Similarly, most users should be fine with US keyboard. If you have some other keyboard (like French, or Italian), enter the appropriate choice from the available ones.
|
||||
|
||||
![set desktop keyboard layout][21]
|
||||
|
||||
#### Step 8: Configure Bootloader
|
||||
|
||||
In ArchBang, you get GRUB2, Syslinux, or Systemd for the bootloader. To make it simple, I am selecting GRUB2 from the choice.
|
||||
|
||||
![select grub2 as bootloader][22]
|
||||
|
||||
Now, it will ask you to specify the method to install GRUB. Select **Automatic** and press enter.
|
||||
|
||||
![select automatic grub][23]
|
||||
|
||||
#### Step 9: Set Root Password
|
||||
|
||||
Now, you should enter the root password. Select “Root Password” from the main menu.
|
||||
|
||||
![enter and confirm root password][24]
|
||||
|
||||
Here, enter and confirm the root password.
|
||||
|
||||
#### Step 10: Create a New User
|
||||
|
||||
Using a system with only a Root User is not secure. So, you should create a new user. In this installer, select the 10th option. Here, you should type a user name, password and confirm the password.
|
||||
|
||||
![create user and password][25]
|
||||
|
||||
Once done, press Enter to go to the main menu.
|
||||
|
||||
#### Step 11: Finish configuration
|
||||
|
||||
At this stage, you have reviewed all the configurations needed. You can now make it to effect by entering the letter “d” as shown in the screenshot below:
|
||||
|
||||
![enter d option to finish the installation][26]
|
||||
|
||||
This will ask permission to reboot your system.
|
||||
|
||||
![press y to reboot your system to new archbang][27]
|
||||
|
||||
Entering “y” will reboot your system to the newly installed ArchBang system.
|
||||
|
||||
### Post Installation Tweaks
|
||||
|
||||
Once rebooted, you will land in the same console. Probably there is no [display manager][28] installed. Here you should enter the username and password and press enter.
|
||||
|
||||
![login to archbang through tty][29]
|
||||
|
||||
This will bring you to the i3WM.
|
||||
|
||||
![installed archbang with i3wm][30]
|
||||
|
||||
Once installed, you need to do a couple of update tasks. **Connect to the internet first**.
|
||||
|
||||
Firstly, you need to update the Pacman keys and archlinux-keyring.
|
||||
|
||||
To do the same, open a terminal by pressing **Super + T** and run the following commands one by one:
|
||||
|
||||
```
|
||||
sudo pacman-key –init
|
||||
sudo pacman-key –populate
|
||||
sudo pacman -Syyu archlinux-keyring
|
||||
```
|
||||
|
||||
This will update system packages and keyrings. Reboot your system.
|
||||
|
||||
Now, you should install a display manager. I prefer LightDM display manager. So open a terminal and enter the following command to install it:
|
||||
|
||||
```
|
||||
sudo pacman -S lightdm lightdm-gtk-greeter
|
||||
```
|
||||
|
||||
Once installed, use the following command to start the Lightdm service:
|
||||
|
||||
```
|
||||
sudo systemctl enable lightdm.service
|
||||
```
|
||||
|
||||
You will get a good and minimal login screen from the next reboot.
|
||||
|
||||
![lightdm login screen in archbang][31]
|
||||
|
||||
You can now enjoy ArchBang Linux according to your liking.
|
||||
|
||||
### Wrapping Up
|
||||
|
||||
ArchBang brings a good Arch Linux experience coupled with a not-so-hard installer and i3WM as the window manager.
|
||||
|
||||
I understand that using a text-based installer like this one could be intimidating for some users. But then, it is [one of the joys of the Arch Linux][32] domain. It feels like a challenge and when you successfully install it, it gives you a sense of accomplishment.
|
||||
|
||||
I have tried to detail all the steps with the necessary explanation. Please let me know if you face any issues or if you have any questions.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://itsfoss.com/install-archbang/
|
||||
|
||||
作者:[Sreenath][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://itsfoss.com/author/sreenath/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://itsfoss.com/arch-based-linux-distros/
|
||||
[2]: https://itsfoss.com/check-uefi-or-bios/
|
||||
[3]: https://sourceforge.net/projects/archbang/files/
|
||||
[4]: https://itsfoss.com/wp-content/uploads/2022/12/go-to-archbang-iso-images-to-download-the-iso-file-from-sourceforge.png
|
||||
[5]: https://itsfoss.com/install-etcher-linux/
|
||||
[6]: https://itsfoss.com/wp-content/uploads/2022/06/etcher-flash.png
|
||||
[7]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-live-iso-home-screen.webp
|
||||
[8]: https://itsfoss.com/wp-content/uploads/2022/12/archbang-installer.png
|
||||
[9]: https://itsfoss.com/partition-managers-linux/
|
||||
[10]: https://itsfoss.com/wp-content/uploads/2022/12/creating-partition-for-non-uefi-system.png
|
||||
[11]: https://itsfoss.com/wp-content/uploads/2022/12/format-the-disk-and-select-ext4-partition.png
|
||||
[12]: https://itsfoss.com/wp-content/uploads/2022/12/create-two-partitions-for-efi-system.png
|
||||
[13]: https://itsfoss.com/wp-content/uploads/2022/12/change-type-of-smaller-partition-to_efi.png
|
||||
[14]: https://itsfoss.com/wp-content/uploads/2022/12/select-larger-partition-for-root-partition-in-efi-system.png
|
||||
[15]: https://itsfoss.com/wp-content/uploads/2022/12/select-efi-partition.png
|
||||
[16]: https://itsfoss.com/wp-content/uploads/2022/12/installing-archbang-progress-bar.png
|
||||
[17]: https://itsfoss.com/wp-content/uploads/2022/12/provide-hostname-and-press-enter.png
|
||||
[18]: https://itsfoss.com/wp-content/uploads/2022/12/set-time-zone-info.png
|
||||
[19]: https://itsfoss.com/wp-content/uploads/2022/12/set-hardware-clock-time.png
|
||||
[20]: https://itsfoss.com/wp-content/uploads/2022/12/set-locale.png
|
||||
[21]: https://itsfoss.com/wp-content/uploads/2022/12/set-desktop-keyboard-layout.png
|
||||
[22]: https://itsfoss.com/wp-content/uploads/2022/12/select-grub2-as-bootloader.png
|
||||
[23]: https://itsfoss.com/wp-content/uploads/2022/12/select-automatic-grub.png
|
||||
[24]: https://itsfoss.com/wp-content/uploads/2022/12/enter-and-confirm-root-password.png
|
||||
[25]: https://itsfoss.com/wp-content/uploads/2022/12/create-user-and-password.png
|
||||
[26]: https://itsfoss.com/wp-content/uploads/2022/12/enter-d-option-to-finish-the-installation.png
|
||||
[27]: https://itsfoss.com/wp-content/uploads/2022/12/press-y-to-reboot-your-system-to-new-archbang.png
|
||||
[28]: https://itsfoss.com/display-manager/
|
||||
[29]: https://itsfoss.com/wp-content/uploads/2022/12/login-to-archbang-through-tty.png
|
||||
[30]: https://itsfoss.com/wp-content/uploads/2022/12/installed-archbang-with-i3wm.png
|
||||
[31]: https://itsfoss.com/wp-content/uploads/2022/12/lightdm-login-screen-in-archbang.png
|
||||
[32]: https://itsfoss.com/why-arch-linux/
|
||||
119
sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md
Normal file
119
sources/tech/20221212.2 ⭐️⭐️ A sysadmin's guide to Carbonio.md
Normal file
@@ -0,0 +1,119 @@
|
||||
[#]: subject: "A sysadmin's guide to Carbonio"
|
||||
[#]: via: "https://opensource.com/article/22/12/carbonio-community-edition-sysadmin"
|
||||
[#]: author: "Arman Khosravi https://opensource.com/users/arman-khosravi"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
A sysadmin's guide to Carbonio
|
||||
======
|
||||
|
||||
[Carbonio Community Edition (Carbonio CE)][1] is an open source no-cost email and collaboration platform by Zextras. It provides privacy for organizations seeking digital sovereignty by using on-premises self-hosted servers. Using self-hosted servers offers a deeper level of control over infrastructure and data. However, it requires more attention to server configurations and infrastructure management to guarantee data sovereignty. Tasks done by system administrators play an important role in this matter. This makes administrative tasks a crucial part of achieving digital sovereignty, therefore, an administrative console dedicated to such tasks becomes extremely valuable to facilitate sysadmins' everyday jobs.
|
||||
|
||||
This is why Zextras launched the first release of its own admin panel for Carbonio CE on October 2022. For Carbonio CE system administrators, it is the first step toward the creation of an all-inclusive admin console.
|
||||
|
||||
In this article, I go into detail about the Carbonio CE Admin Panel and take a deeper look into what it can accomplish.
|
||||
|
||||
![Image of the Carbonio admin panel.][2]
|
||||
|
||||
### What is the Carbonio CE Admin Panel?
|
||||
|
||||
The Carbonio CE Admin Panel is designed to assist the Carbonio CE system administrators with the most repetitive and frequent tasks such as user management and domain configuration. It is a browser-based application that runs on a particular port and is available for system administrators to use in production environments as soon as Carbonio CE is installed.
|
||||
|
||||
### Why do you need the admin panel?
|
||||
|
||||
Everything done in Carbonio CE Admin Panel can be done through the command-line interface as well. This raises the question: why might system administrators prefer using the admin panel rather than the command-line interface?
|
||||
|
||||
Using the admin panel has its own obvious advantages such as:
|
||||
|
||||
- Making repetitive activities much easier to perform
|
||||
- Saving system administrators' time monitoring servers
|
||||
- Providing a much easier learning process for junior system administrators
|
||||
|
||||
Even though using the admin panel makes administrative tasks easier to perform, there is more to using this native user interface for Carboino CE. In essence, the Carbonio CE Admin Panel gives you the ability to monitor and manage your organization server from a single centralized location. Even when you're far away, you may still access your admin panel to check the status of servers and carry out various administrative activities.
|
||||
|
||||
### Creating and managing user accounts
|
||||
|
||||
Managing users has always been one of the most, if not the most, performed action by sysadmins. Therefore it should be an essential part of every administrative GUI available for system administrators. Suppose you, as the system administrator of the company have received some request by users to edit some information on their account. For instance, giving them access to some features, or your company has hired new employees, or some employees have left the company. All these scenarios require a sysadmin to manage user accounts frequently.
|
||||
|
||||
Using the Carbonio CE Admin Panel you can simply go to **Domains > select a domain > Accounts** and select any account to modify, or press the **+** button to add a new account.
|
||||
|
||||
![Image of the accounts Carbonio adminpanel.][3]
|
||||
|
||||
### Creating and managing mailing lists
|
||||
|
||||
Besides creating user accounts, a system administrator is often required to create different mailing lists that reflect the organizational structure of the company. Using mailing lists, users can simply send emails to a group of users by inserting the list address instead of every user address one by one.
|
||||
|
||||
Creating mailing lists in Carbonio CE is extremely easy using the admin panel. You need to go to **Domains > select a domain > Mailing List > press the + button**. You can now use the wizard that opens up to create a mailing list.
|
||||
|
||||
![Image of the Carbonio admin panel mailing list.][4]
|
||||
|
||||
The essential steps to follow are:
|
||||
|
||||
- Insert the name
|
||||
- Insert the mailing list address
|
||||
- Press **NEXT**
|
||||
- Insert the members
|
||||
- Press **CREATE**.
|
||||
|
||||
You can follow the same path to edit mail lists created before.
|
||||
|
||||
### Creating and managing domains
|
||||
|
||||
Managing domains is another task frequently done by system administrators. Similar to accounts, creating a domain is very easy in the Carbonio Admin Panel. You only need to go to **Domains > select a domain > under the details** and find different entries to monitor the status of the domain. To create a new domain simply click on the **CREATE** button on the top bar and select **Create New Domain** and insert the necessary information such as:
|
||||
|
||||
- Domain name
|
||||
- Maximum number of accounts and maximum email quota
|
||||
- Mail server where the domain is hosted
|
||||
|
||||
![Image of the Carbonio admin domains panel.][5]
|
||||
|
||||
### Creating and managing mailstore servers
|
||||
|
||||
The Carbonio CE Admin Panel allows system administrators to manage different servers present in the infrastructure and provide them with different tools to configure them. To monitor a new mailstore server you can go to **Mailstores > Servers List** and find all the available mailstore servers in your infrastructure in a list (when just one server is installed, only one server is shown in this area).
|
||||
|
||||
Under **Server Details**, you can select any of the available servers in the list and select **Data Volumes** to show more details of the storage volumes attached to it. While multiple volumes can be mounted simultaneously, only one primary volume, one secondary volume, and one index volume can be designated as active. You can add new volumes using the **NEW VOLUME +** button in the same section. You can also change the volume properties simply by clicking on them to open their detail window.
|
||||
|
||||
![Image of the Carbonio admin panel volumes.][6]
|
||||
|
||||
### Creating and managing classes of service
|
||||
|
||||
Another scenario that can be facilitated with the help of the admin panel is creating classes of service (COS). After the installation, a system administrator might need to create different classes (groups) and assign different properties to them. This way, later in the process each user or a group of users can be easily nominated to a class of service in order to have access to the features and properties assigned to that specific COS.
|
||||
|
||||
![Image of the Carbonio admin panel COS features.][7]
|
||||
|
||||
To create a COS simply click on the **CREATE** button and select **Create New COS** or alternatively go to **COS** on the left panel and click on **CREATE NEW COS +**. You can then insert the name of the COS and define the different services available to this specific class.
|
||||
|
||||
To edit a COS, go to **COS** on the left panel and select a COS from the dropdown menu at top of the list.
|
||||
|
||||
You can define settings like quotas, the mail servers that can host accounts from this COS, or enable features for this COS. You can also define features for general features like Mail, Calendar, and Contacts. Additional customizable options include Tagging, Out of Office Reply, Distribution List Folders, and so on.
|
||||
|
||||
![Image of the Carbonio admin panel classes of service preferences.][8]
|
||||
|
||||
### Conclusion
|
||||
|
||||
In this article, you saw a few scenarios in which the Carbonio CE Admin Panel saves you time and effort. The admin panel is an evolution of classical administrative tools in a new and centralized interface that gives the possibility of accessing different functionalities and monitoring tools from the same location.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/12/carbonio-community-edition-sysadmin
|
||||
|
||||
作者:[Arman Khosravi][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/arman-khosravi
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/22/3/open-source-collaboration-carbonio
|
||||
[2]: https://opensource.com/sites/default/files/2022-11/carbonio_admin_panel.webp
|
||||
[3]: https://opensource.com/sites/default/files/2022-11/accounts_carbonio_admin_panel.webp
|
||||
[4]: https://opensource.com/sites/default/files/2022-11/mailing_list_carbonio_admin_panel.webp
|
||||
[5]: https://opensource.com/sites/default/files/2022-11/domains_carbonio_admin_panel.webp
|
||||
[6]: https://opensource.com/sites/default/files/2022-11/volumes_carbonio_admin_panel.webp
|
||||
[7]: https://opensource.com/sites/default/files/2022-11/cos_features_carbonio_admin_panel.webp
|
||||
[8]: https://opensource.com/sites/default/files/2022-11/cos_preferences_carbonio_admin_panel.webp
|
||||
@@ -0,0 +1,104 @@
|
||||
[#]: subject: "Linux Mint Upgrade Tool: Usage Guide"
|
||||
[#]: via: "https://www.debugpoint.com/mint-upgrade-tool/"
|
||||
[#]: author: "Arindam https://www.debugpoint.com/author/admin1/"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Linux Mint Upgrade Tool: Usage Guide
|
||||
======
|
||||
|
||||
**Here’s how you can upgrade to new Linux Mint versions using the Mint upgrade tool, i.e. mintupgrade GUI with actual upgrade process screenshots.**
|
||||
|
||||
If you are looking for **detailed upgrade** steps to the recently released **Linux Mint 21 Vanessa**, read this guide 👉 [upgrade-linux-mint-21-from-20-3][1]
|
||||
|
||||
### Linux Mint Upgrade Tool
|
||||
|
||||
The Linux Mint team [announced][2] a few months back, that they built a new utility to upgrade the Linux Mint’s significant versions. It’s called the “mintupgrade2”. Development is complete, and It is currently under the support and planning for upgrading to the major versions—for example, Linux Mint 20 to 21 and not the minor version upgrades.
|
||||
|
||||
Although you can upgrade the versions using the standard apt commands, the Mint team believes significant version upgrades are tricky. It would be difficult for the new users to perform a seamless upgrade because it involves the terminal and a set of complex steps with commands.
|
||||
|
||||
Moreover, the GUI is a wrapper with additional features to the mintupgrade program, which brings a set of pre-system checks and upgrade processes with a one-click Fix.
|
||||
|
||||
In addition, the mintupgrade checks basic checks, whether you are connected to power, the system is up to date, disk space availability and many more features.
|
||||
|
||||
To show you how it looks and works, we set up a testbed with LMDE 4 and give it a go.
|
||||
|
||||
But before that, here’s a quick set of features:
|
||||
|
||||
- Entirely GUI-driven upgrade process
|
||||
- Multi-language support
|
||||
- Pre-upgrade checks: system backup, power, disk space, list of removed packages
|
||||
- Configurable
|
||||
- Alert you about the orphaned packages from the prior version
|
||||
- It gives you the option to fix issues
|
||||
|
||||
### How it works
|
||||
|
||||
When we ran the mint upgrade utility via the command `mintupgrade`, the GUI, the friendly welcome screen gives you an excellent starting point and starts the upgrade process. And then, it begins with a series of checks on its own.
|
||||
|
||||
![Starting the upgrade process][3]
|
||||
|
||||
In addition to that, when it finds some problem in your system, it stops and gives you sufficient details about it. Once you click on Fix, it can resume the process again.
|
||||
|
||||
That’s not all; it can resume the upgrade process if interrupted due to network or internet or any other problem.
|
||||
|
||||
The utility found the following errors in our test system during our test and fixed them with just one click.
|
||||
|
||||
![Apt Cache check][4]
|
||||
|
||||
![Mint Upgrade detects that system snapshots not present][5]
|
||||
|
||||
![Check for Orphan Packages][6]
|
||||
|
||||
![Status before upgrade][7]
|
||||
|
||||
![Mint Upgrade can detect the packages require downgrade][8]
|
||||
|
||||
Lastly, we successfully upgraded a test system from LMDE 4 to LMDE 5.
|
||||
|
||||
![Upgrade Complete][9]
|
||||
|
||||
#### How to get this upgrade utility
|
||||
|
||||
The installation of the utility is easy using the commands below. However, if you are running the latest version of Linux Mint 21, it should already be installed and try by running mintupgrade from the terminal.
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
```
|
||||
sudo apt install mintupgrade
|
||||
```
|
||||
|
||||
### Closing Notes
|
||||
|
||||
Finally, I think it’s one of the best utilities by the Linux Mint team. As you can see above, it handled many errors on its own. All I did was click the “Fix” button. And the utility is smart enough to understand all the failure points and take care of the remediations.
|
||||
|
||||
[GitHub and source code of mintupgrade][10]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://www.debugpoint.com/mint-upgrade-tool/
|
||||
|
||||
作者:[Arindam][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://www.debugpoint.com/author/admin1/
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.debugpoint.com/upgrade-linux-mint-21-from-20-3/
|
||||
[2]: https://www.debugpoint.com/2022/04/linux-mint-21-announcement/
|
||||
[3]: https://www.debugpoint.com/wp-content/uploads/2022/04/Starting-the-upgrade-process.jpg
|
||||
[4]: https://www.debugpoint.com/wp-content/uploads/2022/04/Apt-Cache-check.jpg
|
||||
[5]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-detects-that-system-snapshots-not-present.jpg
|
||||
[6]: https://www.debugpoint.com/wp-content/uploads/2022/04/Check-for-Orphan-Packages.jpg
|
||||
[7]: https://www.debugpoint.com/wp-content/uploads/2022/04/Status-before-upgrade.jpg
|
||||
[8]: https://www.debugpoint.com/wp-content/uploads/2022/04/Mint-Upgrade-can-detect-the-packages-require-downgrade.jpg
|
||||
[9]: https://www.debugpoint.com/wp-content/uploads/2022/04/Upgrade-Complete.jpg
|
||||
[10]: https://github.com/linuxmint/mintupgrade
|
||||
@@ -0,0 +1,300 @@
|
||||
[#]: subject: "Use Django to send emails with SMTP"
|
||||
[#]: via: "https://opensource.com/article/22/12/django-send-emails-smtp"
|
||||
[#]: author: "Sofiia Tarhonska https://opensource.com/users/sofiiatarhonska"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Use Django to send emails with SMTP
|
||||
======
|
||||
|
||||
Numerous professions utilize simple mail transfer protocol (SMTP) to deliver emails to their end users. SMTP also retrieves messages, though that has not been its primary use case. Open source frameworks like Django, a Python-based web framework, allows more control for sending emails using functions and expressions.
|
||||
|
||||
This article shows how to configure an SMTP server and send emails in Django using SMTP.
|
||||
|
||||
### Project setup and overview
|
||||
|
||||
Before proceeding, this tutorial requires a code editor (such as [VS Code or Codium][1]) on your preferred device.
|
||||
|
||||
Start by creating a new directory using the command in the terminal:
|
||||
|
||||
```
|
||||
mkdir exampledirectory
|
||||
```
|
||||
|
||||
Then change into the directory using the command:
|
||||
|
||||
```
|
||||
cd exampledirectory
|
||||
```
|
||||
|
||||
Within the newly created directory, create a [virtual environment][2] using the built-in venv module in the command terminal:
|
||||
|
||||
```
|
||||
python -m venv
|
||||
```
|
||||
|
||||
This command creates a virtual environment within the folder created earlier. To activate it, use the following command in the terminal:
|
||||
|
||||
On Linux and Mac:
|
||||
|
||||
```
|
||||
source .virtenv/bin/activate
|
||||
```
|
||||
|
||||
On Windows:
|
||||
|
||||
```
|
||||
\Scripts\activate
|
||||
```
|
||||
|
||||
### Creating a Django project
|
||||
|
||||
After activating the virtual environment, proceed to install the Django package from [pip][3]:
|
||||
|
||||
```
|
||||
pip install django
|
||||
```
|
||||
|
||||
Create a new Django project:
|
||||
|
||||
```
|
||||
python -m django startproject NewEmailProject
|
||||
```
|
||||
|
||||
This command creates a project with the name `NewEmailProject`. To run the project, head to the project directory (`NewEmailProject`) and run the server:
|
||||
|
||||
```
|
||||
python manage.py runserver
|
||||
```
|
||||
|
||||
Open the link for the developmental server in a browser. You see the Django homepage with release notes.
|
||||
|
||||
### Configuration for sending emails
|
||||
|
||||
Next, open the `settings.py` file (in the `NewEmailProject` folder) to customize configurations for sending emails using Django.
|
||||
|
||||
Scroll to the end of the code and update the file with the following code:
|
||||
|
||||
```
|
||||
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
||||
EMAIL_HOST = 'smtp.yourserver.com'
|
||||
EMAIL_USE_TLS = False
|
||||
EMAIL_PORT = 465
|
||||
EMAIL_USE_SSL = True
|
||||
EMAIL_HOST_USER = 'your@djangoapp.com'
|
||||
EMAIL_HOST_PASSWORD = 'your password'
|
||||
```
|
||||
|
||||
Change the value of the `EMAIL_HOST` depending on your email client. Here are the acceptable values for common email clients:
|
||||
|
||||
- **Gmail:**`smtp.gmail.com`
|
||||
- **Outlook:**`smtp-mail.outlook.com`
|
||||
- **Yahoo:**`smtp.mail.yahoo.com`
|
||||
|
||||
You can change the `EMAIL_PORT` or leave 465 as the default.
|
||||
|
||||
You can use the secure socket layer (SSL) and transport socket layer (TSL) interchangeably as they specify connection security.
|
||||
|
||||
To figure out other custom configurations for your email server, check out the full [Django Project documentation][4].
|
||||
|
||||
### SMTP email backend
|
||||
|
||||
The `EMAIL_BACKEND` expression helps determine the most suitable backend when sending emails through the Django SMTP server. This variable points to `smtp.EmailBackend`, which receives all the parameters needed for sending emails. It tells Django to send the email to the recipient email using SMTP and not to the console.
|
||||
|
||||
### Sending emails with SMTP
|
||||
|
||||
When the environment is set up and `settings.py` is updated, you can send emails in Django. You can use an HTML form that sends a post request of the necessary information needed for sending an email.
|
||||
|
||||
Create a Django application for sending emails:
|
||||
|
||||
```
|
||||
python manage.py startapp mail
|
||||
```
|
||||
|
||||
Next, open the `settings.py` file and add the Django application (mail) to the `INSTALLED_APPS` list:
|
||||
|
||||
```
|
||||
INSTALLED_APPS = [
|
||||
"django.contrib.admin",
|
||||
"django.contrib.auth",
|
||||
"django.contrib.contenttypes",
|
||||
"django.contrib.sessions",
|
||||
"django.contrib.messages",
|
||||
"django.contrib.staticfiles",
|
||||
"mail"]
|
||||
```
|
||||
|
||||
### Send mail function
|
||||
|
||||
In the mail application's `views.py` file, start by importing the `EmailMessage` and `get_connection` from `django.core.mail`:
|
||||
|
||||
```
|
||||
from django.core.mail import EmailMessage, get_connection
|
||||
```
|
||||
|
||||
The `EmailMessage` class is responsible for creating the email message itself. The `get_connection()` function returns an instance of the email backend specified in `EMAIL_BACKEND`.
|
||||
|
||||
Now create a function that accepts a `POST` request, which contains form data submitted from the client side. Followed by the `get_connection()` functions parameters containing the email configurations created in the project `settings.py` file.
|
||||
|
||||
Next, import the settings:
|
||||
|
||||
```
|
||||
from django.conf import settings
|
||||
```
|
||||
|
||||
This import allows access to the email configurations created in the `settings.py`. Next, create the variables:
|
||||
|
||||
```
|
||||
subject, recipient_list,
|
||||
```
|
||||
|
||||
Then you can `message`, and store the corresponding attributes used in the HTML form. The `email_from` variable contains the sender email, which is obtained from `EMAIL_HOST_USER` in the `settings.py` file.
|
||||
|
||||
After the variables are processed, the `EmailMessage` class sends an email using the `sends()` method, and then closes the connection. The `send_email()` function renders the `home.html` file containing the email form.
|
||||
|
||||
You can create a templates folder within your mail application and store the HTML files within that folder:
|
||||
|
||||
```
|
||||
from django.core.mail import EmailMessage, get_connectionfrom django.conf import settingsdef send_email(request):
|
||||
if request.method == "POST":
|
||||
with get_connection(
|
||||
host=settings.EMAIL_HOST,
|
||||
port=settings.EMAIL_PORT,
|
||||
username=settings.EMAIL_HOST_USER,
|
||||
password=settings.EMAIL_HOST_PASSWORD,
|
||||
use_tls=settings.EMAIL_USE_TLS
|
||||
) as connection:
|
||||
subject = request.POST.get("subject")
|
||||
email_from = settings.EMAIL_HOST_USER
|
||||
recipient_list = [request.POST.get("email"), ]
|
||||
message = request.POST.get("message")
|
||||
EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()
|
||||
|
||||
return render(request, 'home.html')
|
||||
```
|
||||
|
||||
This is a bootstrap form for generating a message:
|
||||
|
||||
```
|
||||
<form method="post" action=".">
|
||||
{% csrf_token %}
|
||||
<div class="mb-3">
|
||||
<label for="exampleFormControlInput1" class="form-label">Receipt email address</label>
|
||||
<input type="text" class="form-control" name="email" id="exampleFormControlInput1" placeholder="Receipt email address">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="exampleInputSubject" class="form-label">Subject</label>
|
||||
<input type="text" class="form-control" name="subject" id="exampleInputSubject">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="exampleFormControlTextarea1" class="form-label">Message</label>
|
||||
<textarea class="form-control" id="exampleFormControlTextarea1" name="message" rows="3"></textarea>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Send</button>
|
||||
</form>
|
||||
```
|
||||
|
||||
This form sends a post request to the `send_email()` function. This processes the form data and sends the email to the recipients.
|
||||
|
||||
Now open the `urls.py` file in the `NewEmailProject` folder to create the homepage URL. Update the `urlpattern` list by adding the code `path("", send_email)` .
|
||||
|
||||
### Sending email to multiple recipients
|
||||
|
||||
To specify multiple recipients when sending the same email, create a new function called `send_emails` within the `views.py` file and modify the send function code:
|
||||
|
||||
```
|
||||
def send_emails(request):
|
||||
if request.method == "POST":
|
||||
with get_connection(
|
||||
host=settings.EMAIL_HOST,
|
||||
port=settings.EMAIL_PORT,
|
||||
username=settings.EMAIL_HOST_USER,
|
||||
password=settings.EMAIL_HOST_PASSWORD,
|
||||
use_tls=settings.EMAIL_USE_TLS
|
||||
) as connection:
|
||||
recipient_list = request.POST.get("email").split()
|
||||
subject = request.POST.get("subject")
|
||||
email_from = settings.EMAIL_HOST_USER
|
||||
message = request.POST.get("message")
|
||||
print(type(recipient_list))
|
||||
EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()
|
||||
|
||||
return render(request, 'send_emails.html')
|
||||
```
|
||||
|
||||
For the `recipient_list` variable, I'm using the Python `split()` method to convert the recipients email string to list so that I can email all of them.
|
||||
|
||||
Next, create another HTML file called `send_emails.html` in the templates folder and use the same form code for the `home.html` file within it.
|
||||
|
||||
To specify multiple email recipients, use a space between each email address:
|
||||
|
||||
```
|
||||
first@gmail.com second@gmail.com third@gmail.com
|
||||
```
|
||||
|
||||
You should also update the `urlpattern` list by adding the code:
|
||||
|
||||
```
|
||||
path("send-emails/", send_email)
|
||||
```
|
||||
|
||||
### Sending HTML emails
|
||||
|
||||
You can also send HTML emails with Django using a slightly modified version of the `send_email` function:
|
||||
|
||||
```
|
||||
html_message = '''<h1>this is an automated message</h1>'''
|
||||
msg = EmailMessage(subject, html_message, email_from,recipient_list, connection=connection)
|
||||
msg.content_subtype = "html"
|
||||
msg.send()
|
||||
```
|
||||
|
||||
### Sending emails with attachment
|
||||
|
||||
To include attachment to mails, create a variable and put it in the file path in a string like this:
|
||||
|
||||
```
|
||||
attachment = "mail/templates/example.png"
|
||||
```
|
||||
|
||||
Then, move the `EmailMessage` function to a variable and call the `attach_file` method followed by the `send` method:
|
||||
|
||||
```
|
||||
msg = EmailMessage(subject, message, email_from, recipient_list, connection=connection)
|
||||
msg.attach_file(attachment)
|
||||
msg.send()
|
||||
```
|
||||
|
||||
### Django email libraries
|
||||
|
||||
This guide on sending emails in Django would not be complete if I didn't mention the email libraries that are available to users. Here are some noteworthy email libraries.
|
||||
|
||||
- **Django mailer** is a Django app for queuing as it saves emails in a database and sends the mail out at a designated time.
|
||||
- **Django templated email** aims to send templated emails. It offers features like configurable template naming and location, template inheritance, and adding recipients to the CC and BCC lists.
|
||||
- **Anymail** allows the use of an email service provider (ESP). By using `django.core.mail`, it provides a sustained API that avoids tying your code to a single ESP.
|
||||
|
||||
### Emailing with Django
|
||||
|
||||
Sending emails in Django can sound daunting, but it's as simple as creating a virtual environment. You can add Django to the environment and create an email backend. Finally, you can set up an HTML template. Give it a try.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/12/django-send-emails-smtp
|
||||
|
||||
作者:[Sofiia Tarhonska][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/sofiiatarhonska
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/20/6/open-source-alternatives-vs-code#vscodium
|
||||
[2]: https://opensource.com/article/21/2/python-virtualenvwrapper
|
||||
[3]: https://www.redhat.com/sysadmin/install-python-pip-linux
|
||||
[4]: https://docs.djangoproject.com/en/3.2/ref/settings/#email-backend
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
[#]: subject: "Drupal 10 is worth a fresh look"
|
||||
[#]: via: "https://opensource.com/article/22/12/drupal-10-fresh-look"
|
||||
[#]: author: "Martin Anderson-Clutz https://opensource.com/users/mandclu"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Drupal 10 is worth a fresh look
|
||||
======
|
||||
|
||||
The popular Drupal open source content management system (CMS) reaches a significant milestone when version 10 is released on December 14. Personally, I think Drupal X sounds way cooler, but so far, my calls to name it that haven't gotten much traction. I enlisted the help of my friend Aaron Judd of [Northern Commerce][1] to give us a sense of how cool Drupal X could look:
|
||||
|
||||
![New Drupal 10 racing 10 logo][2]
|
||||
|
||||
### What's a Drupal, anyway?
|
||||
|
||||
Drupal is an open source CMS and development framework. While other CMS options focus on simple long-form content (think blogs) or entirely free-form content (like in Wix or Squarespace), Drupal has made a name for itself in handling more complex content architectures, in multiple languages, with robust content governance. Drupal sites (like this site, Opensource.com!) benefit from a strong role-based access control (RBAC) system, unlimited custom roles and workflows, and a powerful and extensible media library.
|
||||
|
||||
Here's a rundown for anyone who hasn't kept tabs on what's coming in the newest major version.
|
||||
|
||||
### A fresh face
|
||||
|
||||
Most Drupal sites use custom themes to give them a unique look and feel. Still, the initial experience you have when installing a CMS matters. In Drupal, themes define the look and feel of a site, and you can use different themes for public and administrative experiences. Until recently, the Bartik and Seven themes had been the default face of Drupal for more than a decade. To put that in context, when Bartik was released, the most popular browser in the world was Internet Explorer 8. A lot has changed since then, particularly around best practices for building websites.
|
||||
|
||||
In fact, a significant change in Drupal 10 will be the removal of support for Internet Explorer (IE), which is itself no longer supported by Microsoft and hasn't seen major updates since 2013. That may not sound like an improvement, but continued support for IE kept the community from adopting modern markup and styling. For example, thanks to being unencumbered by support for legacy browsers, Drupal 10 includes a new responsive grid layout that's so innovative it got a writeup in [CSS Tricks][3].
|
||||
|
||||
![Responsive grid configuration][4]
|
||||
|
||||
The new faces of Drupal are two brand new themes: Olivero for visitors and Claro for admins. In addition to being fresh and modern designs, both were developed with accessibility as a top priority.
|
||||
|
||||
### Improvements under the hood
|
||||
|
||||
More than a decade ago, the Drupal community decided to "Get Off the Drupal Island." That meant adopting solutions shared across popular projects and frameworks instead of ones developed and maintained exclusively by the Drupal community. Today Drupal leverages a variety of projects and libraries whose names will be familiar to open source developers who have never touched Drupal: Symfony, Composer, CKEditor, Twig, Nightwatch, and more.
|
||||
|
||||
That has brought a variety of powerful capabilities to Drupal and allowed it to contribute back to those solutions, benefitting a broader set of developers. It has also become a determining factor for the cadence of Drupal's major version releases.
|
||||
|
||||
To illustrate, consider that Drupal 7 was released in early 2011. Drupal 8 was released almost five years later, towards the end of 2015. Drupal 9 was released in June of 2020, with a key motivator being the move to supported versions of underlying dependencies and removing deprecated code. And now, roughly two and half years later, we're already planning to release Drupal 10. This new major version will leverage updated versions of PHP, Symfony, and Composer, among others.
|
||||
|
||||
### An all-new editor
|
||||
|
||||
An upgrade of particular note is the move to CKEditor 5. Although notionally an incremental update, under the hood CKEditor 5 was completely rewritten, much the same as the transition from Drupal 7 to 8. In addition to a sleeker interface, CKEditor 5 has the potential for exciting new capabilities, such as real-time collaboration. Drupal's CKEditor integration for version 5 has already been augmented with a number of UI enhancements. For example, media placed within content can be configured using an overlaid toolbar ribbon instead of needing to launch a modal dialog to access these settings. Also, the styles dropdown now includes a preview of each type available.
|
||||
|
||||
![Real-time collaboration][5]
|
||||
|
||||
### A look ahead
|
||||
|
||||
Earlier in 2022, Drupal creator and project lead Dries Buytaert announced a focus on "ambitious site builders." This means that while the community will continue to work on making the developer experience better in general, moving forward there is a particular focus on making it easier to create engaging experiences in Drupal without having to write code or use command-line tools. Three strategic initiatives embody this new focus: Automatic Updates, the Project Browser, and Recipes.
|
||||
|
||||
**Automatic Updates** will reduce the total cost of ownership for Drupal sites and help them be more secure by ensuring they always have the latest core security patches. This will be a major benefit for site owners and Drupal development teams everywhere. However, judging by personal experience, Wednesday night pizza sales may take a hit (traditionally, the Drupal security team releases updates on the third Wednesday of the month). There is now a stable release of Automatic Updates as a contrib module. Work has begun to move this into Drupal core, so all Drupal sites will eventually be able to leverage this capability.
|
||||
|
||||
The **[Project Browser][6]** makes Drupal sites easier to build, maintain, and evolve by allowing site builders to search and browse through a subset of Drupal's vast catalog of available modules, prefiltered to the site's Drupal version, for security, stability, and more. A site builder can select, download, and install a module without leaving the site's web interface. In fact, there's an "app store" like interface meant to promote the most popular modules available that are compatible with the current site's version of Drupal. While other CMS options have had similar offerings, this advancement means you don't need to sacrifice ease-of-use to take advantage of the power of Drupal. Also, all of the thousands of modules listed are 100% free.
|
||||
|
||||
For many years Drupal has had a concept of distributions. These are opinionated versions of Drupal designed to meet specific use cases such as media publishing, fundraising, intranet portals, and more. While distributions have proven an excellent way to accelerate initial development, in practice, they have been known to require significant work to maintain and create extra work for site owners during maintenance. The **Recipes** initiative aims to make more granular, composable functionality available when building a site. Want to add a staff directory, events calendar, or locations map to your site? In the future, this will be as easy as installing a recipe and then customizing it to meet your site's specific needs.
|
||||
|
||||
### It's an exciting time to try Drupal
|
||||
|
||||
Drupal 10 is the culmination of work contributed by thousands of dedicated and talented community members worldwide. If you're not already using Drupal, we hope you'll try it out for your next project. There's a common saying among Drupalists: "Come for the code, stay for the community."
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/12/drupal-10-fresh-look
|
||||
|
||||
作者:[Martin Anderson-Clutz][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/mandclu
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://www.northern.co/
|
||||
[2]: https://opensource.com/sites/default/files/2022-12/DrupalX-RacerSticker-DrupalBlue-300ppi.png
|
||||
[3]: https://css-tricks.com/an-auto-filling-css-grid-with-max-columns
|
||||
[4]: https://opensource.com/sites/default/files/2022-11/responsive-grid-config.png
|
||||
[5]: https://opensource.com/sites/default/files/2022-11/realtime-collaboration_0.gif
|
||||
[6]: https://www.drupal.org/project/project_browser
|
||||
@@ -0,0 +1,96 @@
|
||||
[#]: subject: "Try this Linux web browser as your file manager"
|
||||
[#]: via: "https://opensource.com/article/22/12/linux-file-manager-konqueror"
|
||||
[#]: author: "Seth Kenlon https://opensource.com/users/seth"
|
||||
[#]: collector: "lkxed"
|
||||
[#]: translator: " "
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
Try this Linux web browser as your file manager
|
||||
======
|
||||
|
||||
Konqueror is a file manager and web browser for the KDE Plasma Desktop. In many ways, Konqueror defined "network transparency," as it applied to a personal desktop. With Konqueror, you can browse remote network files (including the Internet itself, which really is just a collection of remote files viewed through a fancy lens) just as easily as browsing your local files. Sometimes there was some configuration and setup required, depending on what kind of file share you needed to access. But ultimately, the goal of having instant access to all the data you had permission to view was a reality with Konqueror in ways no other file manager had achieved. And at its peak, the open source web engine it developed (KHTML) was adopted by both Apple and Google, and lives on today as the core library of modern web browsing and, technically, Electron app development.
|
||||
|
||||
Today, the KDE Plasma Desktop lists Konqueror as a web browser. Officially, file management has shifted over to [Dolphin][1], but Konqueror is still capable of doing the job. For the full and classic Konqueror experience, you should try the Plasma Desktop 3.x fork [TDE][2], but in this article I use Konqueror in KDE Plasma Desktop version 5.
|
||||
|
||||
### Install Konqueror
|
||||
|
||||
If you're running KDE Plasma Desktop already, you may already have Konqueror installed. If not, you can install it from your distribution's software repository. On Fedora, CentOS, Mageia, OpenMandriva, and similar:
|
||||
|
||||
```
|
||||
$ sudo dnf install -y konqueror konqueror-plugins
|
||||
```
|
||||
|
||||
On Debian, Linux Mint, Elementary, and similar:
|
||||
|
||||
```
|
||||
$ sudo apt install -y konqueror konqueror-plugins
|
||||
```
|
||||
|
||||
![Image of Konqueror's file manager.][3]
|
||||
|
||||
### Configure Konqueror as a file manager
|
||||
|
||||
The most convenient feature of Konqueror is that it's a web browser in addition to being a file manager. Or at least, that's theoretically its most convenient feature. If you're not using Konqueror as a web browser, then you may not want the URL field or the search engine field at the top of every file manager window.
|
||||
|
||||
As with most KDE applications, Konqueror is highly configurable. You can reposition and add and remove toolbars, add or remove buttons, and so on.
|
||||
|
||||
To adjust what toolbars are displayed, launch Konqueror and go to the **Settings** menu and select **Toolbars Shown**. The **Main** toolbar is probably all you really need for file management. It's the toolbar with navigation buttons on it. However, you may not even need that, as long as you're happy to navigate with keyboard shortcuts or using the **Go** menu.
|
||||
|
||||
Keyboard navigation in Konqueror is the same as in Dolphin:
|
||||
|
||||
- **Alt+Left arrow**: Back one step
|
||||
- **Alt+Up arrow**: Move to parent directory
|
||||
- **Alt+Home**: Go to home directory
|
||||
|
||||
### Side panel
|
||||
|
||||
To get a side panel with a listing of common folders, press **F9** or select **Show Sidebar** from the **Settings** menu. This adds a button bar along the left side of the Konqueror window. Click the **Home** icon to display a file tree of your home directory.
|
||||
|
||||
![Image of Konqueror with a sidebar.][4]
|
||||
|
||||
As the button bar suggests, this side panel can serve many purposes. Instead of your home directory, you can display bookmarked locations, a history of recent locations you've visited, remote filesystems, and more.
|
||||
|
||||
### Applications
|
||||
|
||||
Some people are used to an application menu. It's efficient and quick, and always in the same place. Other people prefer to launch applications from the terminal.
|
||||
|
||||
There's yet another way to view application launchers, though. Konqueror's **Go** menu allows you go to a meta location called **Applications**, which lists application launchers, by category, as files in a file manager.
|
||||
|
||||
![Image of applications in Konqueror.][5]
|
||||
|
||||
You can see this in Dolphin, too, by manually typing **applications:** in the location field, but of the two it's Konqueror that provides a menu option to go there directly.
|
||||
|
||||
### Network folders
|
||||
|
||||
Similarly, Konqueror also provides a menu selection to go to network folders. The greatest network folder of them all is the Internet, but **Network Folders** is the meta location for network protocols other than HTTP. Most remote locations require some setup because they usually require authentication to access. Most of them can be configured through **System Settings**, including file systems accessible over Bluetooth, SMB or CIFS, MTP devices, Fish (file system over SSH), and even Google Drive.
|
||||
|
||||
### Split view
|
||||
|
||||
You can split the Konqueror window into panes, allowing you to see two folders at once without opening two windows. There are two split options: a vertical split with one pane on the left and the other on the right, or a horizontal split with one pane above the other.
|
||||
|
||||
To split the Konqueror window, go to the **Window** menu and select either **Split View Left/Right** or **Spit View Top/Bottom**. Each pane is independent of the other, so you can navigate around in one pane, and then drag and drop files from one to the other.
|
||||
|
||||
### Conquering your file system
|
||||
|
||||
Konqueror isn't _just_ a file manager, and I don't think the developers of the Plasma Desktop expect you to use it as your primary file manager. There's even an option in the **File** menu to open a location in **Dolphin**, which indicates that Konqueror is a web browser with a file manager component. But that file manager component is a nice feature to have when you need it. And if you're not a fan of all the features Dolphin offers, Konqueror could be a suitable alternative.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/22/12/linux-file-manager-konqueror
|
||||
|
||||
作者:[Seth Kenlon][a]
|
||||
选题:[lkxed][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/seth
|
||||
[b]: https://github.com/lkxed
|
||||
[1]: https://opensource.com/article/22/12/linux-file-manager-dolphin
|
||||
[2]: https://opensource.com/article/19/12/linux-trinity-desktop-environment-tde
|
||||
[3]: https://opensource.com/sites/default/files/2022-10/konqueror-filemanager.png
|
||||
[4]: https://opensource.com/sites/default/files/2022-10/konqueror-sidebar.png
|
||||
[5]: https://opensource.com/sites/default/files/2022-10/konqueror-applications.png
|
||||
Reference in New Issue
Block a user