105 lines
5 KiB
Bash
Executable file
105 lines
5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# NAME: Enable and configure system services
|
|
|
|
set -euo pipefail
|
|
|
|
echo "Enabling and configuring system services..."
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🌐 NETWORKING SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling networking services..."
|
|
|
|
# NetworkManager (main network management)
|
|
sudo systemctl enable --now NetworkManager.service
|
|
|
|
# Bluetooth
|
|
sudo systemctl enable --now bluetooth.service
|
|
|
|
# SSH daemon
|
|
sudo systemctl enable --now sshd.service
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🔊 AUDIO SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling audio services..."
|
|
|
|
# PipeWire audio (replaces PulseAudio)
|
|
systemctl --user enable --now pipewire.service
|
|
systemctl --user enable --now pipewire-pulse.service
|
|
systemctl --user enable --now wireplumber.service
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🖨️ PRINTING SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling printing services..."
|
|
|
|
# CUPS printing system
|
|
sudo systemctl enable --now cups.service
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# ⏰ TIME & SCHEDULING SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Configuring time and scheduling services..."
|
|
|
|
echo "en_US.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
|
|
sudo locale-gen
|
|
|
|
# Set system locale
|
|
echo "LANG=en_US.UTF-8" | sudo tee /etc/locale.conf
|
|
echo "→ System locale set to en_US.UTF-8"
|
|
|
|
sudo timedatectl set-timezone America/Montevideo
|
|
|
|
# Enable NTP time synchronization
|
|
sudo timedatectl set-ntp true
|
|
sudo systemctl enable --now systemd-timesyncd.service
|
|
|
|
# Cron daemon for scheduled tasks
|
|
sudo systemctl enable --now cronie.service
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🔒 SECURITY & FIREWALL SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling security services..."
|
|
|
|
# UFW firewall
|
|
sudo systemctl enable --now ufw.service
|
|
|
|
# Enable basic firewall rules
|
|
sudo ufw --force enable
|
|
sudo ufw default deny incoming
|
|
sudo ufw default allow outgoing
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 💾 BACKUP & SYNC SERVICES
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling backup services..."
|
|
|
|
# Snapper for BTRFS snapshots (if using BTRFS)
|
|
if findmnt / -t btrfs &>/dev/null; then
|
|
sudo systemctl enable --now snapper-timeline.timer
|
|
sudo systemctl enable --now snapper-cleanup.timer
|
|
echo "→ Snapper enabled (BTRFS detected)"
|
|
else
|
|
echo "→ Skipping Snapper (no BTRFS detected)"
|
|
fi
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# ⚡ POWER MANAGEMENT
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling power management..."
|
|
|
|
# Power profiles daemon
|
|
sudo systemctl enable --now power-profiles-daemon.service
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🔧 SYSTEM OPTIMIZATION
|
|
# ═══════════════════════════════════════════════════════════
|
|
echo "Enabling system optimization..."
|
|
|
|
# Haveged entropy daemon
|
|
sudo systemctl enable --now haveged.service
|
|
|
|
# Locate database updates
|
|
sudo systemctl enable --now plocate-updatedb.timer
|