Skip to main content

A simple hosts file manager

Project description

hostsd - A simple hosts file manager

Support Private.coffee! PyPI PyPI - Python Version PyPI - License Latest Git Commit

hostsd is a simple hosts file manager that allows you to separate your hosts file into multiple files and easily enable or disable them. It's useful for development environments where you need to manage lots of hosts entries, or for managing ad-blocking hosts files.

Dependencies

  • Python 3.8 or later (earlier versions may work but are untested)
  • Linux or macOS (should work on Windows too but is untested)

Installation

pip install hostsd

Now, to ensure that your existing /etc/hosts contents are retained, you can copy the file to /etc/hosts.d/00-original:

sudo mkdir /etc/hosts.d
sudo cp /etc/hosts /etc/hosts.d/00-original

Usage

To write the contents of /etc/hosts.d/* to /etc/hosts:

sudo hostsd

You can also specify the input and output paths:

hostsd -i /etc/hosts.d -o /etc/hosts

You can disable a file by adding a .disabled extension:

mv /etc/hosts.d/10-my-file /etc/hosts.d/10-my-file.disabled

Hidden files (files starting with a dot) are ignored as well.

Running hostsd automatically

You can run hostsd automatically using a cron job or a systemd timer. Here's an example of a systemd timer (assuming you have installed hostsd globally, for simplicity):

# /etc/systemd/system/hostsd.timer
[Unit]
Description=Update hosts file every minute

[Timer]
OnBootSec=1min
OnUnitActiveSec=1min

[Install]
WantedBy=timers.target
# /etc/systemd/system/hostsd.service
[Unit]
Description=Update hosts file

[Service]
Type=oneshot
ExecStart=/usr/bin/hostsd
sudo systemctl enable hostsd.timer
sudo systemctl start hostsd.timer

This will run hostsd every minute. So you can just drop a new file in /etc/hosts.d and it will be picked up automatically.

You could even combine this with a git repository and you have a simple way to manage your hosts files across multiple machines or share them with others, without needing to set up and manage a full DNS server.

License

hostsd is licensed under the MIT license. See LICENSE for the full license text.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hostsd-0.1.3.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

hostsd-0.1.3-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file hostsd-0.1.3.tar.gz.

File metadata

  • Download URL: hostsd-0.1.3.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for hostsd-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fa66f3d770b46694ef11399f2a4857e455362b66cdff11076f8675a5f0c04b31
MD5 d2845fc10f818d7afd22421de14777bd
BLAKE2b-256 8bfb5719e6a1d6c431ade78510f98fbc484b53702ba003be8ee0ee4015fbe36d

See more details on using hashes here.

File details

Details for the file hostsd-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: hostsd-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.2

File hashes

Hashes for hostsd-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b07389cf914124b3885a34368b26595c653aa1344d62cf46ddd56e8b18e7a294
MD5 01d490f4ac21b468880125f0da47a553
BLAKE2b-256 60c11362a4e3efa40ac08c310834509a76c84dea425b9a5177c85f8b2997a5ab

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page