Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
Run Drone as two Docker containers on your VPS: a server that handles the web UI, repository events and scheduling, and a Docker runner that executes pipeline steps. Give both services the same RPC secret, expose the server through a real HTTPS domain, and keep the runner’s Docker socket access restricted to the host you trust. The current image families are drone/drone:2 for the server and drone/drone-runner-docker:1 for the runner.
What the deployment contains
A self-hosted Drone installation is not a single daemon. It is a small control plane plus one or more execution workers.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11| Component | Purpose | Container image | Important connection |
|---|---|---|---|
| Drone server | Provides the web interface, receives repository events, authenticates users, creates builds and assigns work. | drone/drone:2 |
Needs a public server host and protocol, Git-provider OAuth credentials, and the RPC secret. |
| Docker runner | Polls the server for jobs and starts each pipeline step as a Docker container. | drone/drone-runner-docker:1 |
Needs the server address, http or https protocol, and the identical RPC secret. |
| Git provider | Stores repositories and sends push or pull-request events to Drone after OAuth authorization. | Provided by your Git service | Its OAuth application must use the host name and callback details required by your Drone version and provider. |
The server and runner can be placed in one Docker Compose project. In that arrangement, the runner can reach the server over Compose’s private network instead of traversing the public Internet. A runner on another machine needs a reachable server address and a protocol that is valid for that route.
Prerequisites and sizing
VPS operating system
Ubuntu 22.04 or Ubuntu 24.04 is the recommended baseline in the setup guidance. Use a maintained 64-bit installation and keep security updates enabled.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
Compute and storage
- Allocate at least 2 GB of RAM.
- Allocate at least 2 vCPUs.
- Provide enough disk space for Docker images, build caches and logs. The exact amount depends on repository size and build frequency, so monitor usage rather than treating a minimum as a guarantee.
These minimums are a starting point for a small installation. Parallel jobs, large toolchains or several repositories can exhaust memory and CPU quickly; increase the VPS size or add runners when queue time or resource pressure becomes persistent.
Docker and Compose
Install Docker from Docker’s own APT repository, including the Compose plugin. Confirm both commands before creating the stack:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
docker --version
docker compose version
The second command must be the modern Compose plugin form, docker compose, rather than relying on an obsolete standalone binary.
Domain, DNS and TLS
Use a real DNS name that resolves to the VPS and publish Drone through HTTPS. Raw IP addresses, plain HTTP and tunnelling services are useful only for temporary experiments in community examples; they are not the expected production arrangement. Terminate TLS at your reverse proxy or load balancer and forward requests to the server’s local port.
Plan the host names and OAuth application
Choose the public Drone address
Decide on the complete host name before starting the container, for example ci.example.net. The server host setting must match the name users visit. The protocol setting should be https when that public address is served over TLS.
Keep the public address separate from the internal Compose service name. The public name is for browsers and Git-provider callbacks; a runner in the same Compose project can use the internal service name for its RPC connection.
Create OAuth credentials in your Git service
Create an OAuth application in the Git provider that hosts the repositories. Record its client ID and client secret in a password manager or another protected store. The exact environment-variable names and callback value differ by provider and Drone integration, so check the current server-install documentation on docs.drone.io and the provider’s current OAuth screen instead of copying a variable set from an old guide.
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
Do not commit the client secret, RPC secret or any generated environment file to a repository. Restrict the file permissions on the VPS and limit shell access to administrators.
Generate and store the shared RPC secret
The server authenticates runners with one shared secret. Generate a random value on the VPS:
openssl rand -hex 16
Copy the complete output into your protected environment file. The value must be byte-for-byte identical in the server and runner services. A mismatch is one of the most common reasons a runner never becomes available.
Create a working directory and an environment file that is readable only by the administrator:
sudo mkdir -p /opt/drone
sudo chown "$USER":"$USER" /opt/drone
cd /opt/drone
umask 077
nano .env
The following variables illustrate the values that belong in the file. Provider-specific OAuth names are intentionally shown as comments because they depend on the integration you selected:
DRONE_SERVER_HOST=ci.example.net
DRONE_SERVER_PROTO=https
DRONE_RPC_SECRET=replace-with-the-output-of-openssl-rand
DRONE_USER_CREATE=username:admin,admin:true
# Add the OAuth client ID and secret variables required by your Git provider.
DRONE_USER_CREATE is used by one common deployment pattern to create the first administrator. Use the exact syntax documented for your Drone release and provider; if you omit it, the first authenticated account may not receive the administrative role automatically.
Write the Docker Compose project
Save a Compose file as /opt/drone/compose.yaml. This example keeps the server’s application port bound to loopback, so only the reverse proxy is exposed publicly. It also shows the runner using the server’s Compose service name, an arrangement used in community examples and suitable for a same-host network.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
services:
drone-server:
image: drone/drone:2
restart: unless-stopped
ports:
- '127.0.0.1:8080:80'
environment:
DRONE_SERVER_HOST: ${DRONE_SERVER_HOST}
DRONE_SERVER_PROTO: ${DRONE_SERVER_PROTO}
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
DRONE_USER_CREATE: ${DRONE_USER_CREATE}
# Add the provider-specific OAuth variables here.
volumes:
- drone-data:/data
drone-runner:
image: drone/drone-runner-docker:1
restart: unless-stopped
depends_on:
- drone-server
environment:
DRONE_RPC_HOST: drone-server
DRONE_RPC_PROTO: http
DRONE_RPC_SECRET: ${DRONE_RPC_SECRET}
DRONE_RUNNER_CAPACITY: 2
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
drone-data:
Several details in this file matter:
drone/drone:2anddrone/drone-runner-docker:1identify the current major image families used by the setup guidance. Do not substitute old 1.x server examples such asdrone/drone:1.9.1without a deliberate compatibility plan.- The loopback binding on port 8080 keeps the server off the public interface. Your proxy forwards the HTTPS host to that local port.
- The named
drone-datavolume preserves server data when the container is recreated. DRONE_RUNNER_CAPACITYlimits how many builds that runner executes concurrently. Set it to a value your VPS can actually sustain; increasing it does not add CPU or memory.- The Docker socket mount lets the runner launch sibling containers. It is required for Docker pipelines, but it also gives jobs substantial control over the host.
The server’s OAuth variables are the one part you should not blindly copy between providers or releases. Insert the names and values specified by the current Drone documentation for your Git integration, then validate the rendered configuration before starting the stack.
Start the server and runner
- Change to the project directory:
cd /opt/drone. - Check the Compose file and interpolated variables:
docker compose config. Resolve any missing-variable warning before proceeding. - Pull the declared images:
docker compose pull. - Start both services in the background:
docker compose up -d. - Inspect container state:
docker compose ps. - Read startup output if either service is not running:
docker compose logs --tail=200 drone-server drone-runner.
The server should remain running while the runner reconnects. A short delay during first image extraction is normal; repeated restarts, an exited container or a runner that never registers indicates a configuration or connectivity problem.
Put HTTPS in front of Drone
Configure your existing reverse proxy or load balancer with the DNS name chosen earlier, obtain a trusted certificate, and forward HTTPS requests to 127.0.0.1:8080. Preserve the original host and scheme headers so Drone can construct correct links and OAuth redirects. The proxy, certificate authority and exact configuration syntax depend on the software you operate, so follow that product’s current HTTPS instructions.
After DNS and TLS are active, open the public Drone address in a browser. If the browser is redirected to an unexpected host, shows an HTTP callback or reports a redirect mismatch during login, compare the public URL, server host/protocol values and the OAuth application’s registered callback details character by character.
Connect the Git provider and authorize Drone
- Open the provider-specific OAuth application settings and verify that the client ID and secret in the Compose environment are the same pair shown there.
- Confirm the application’s callback address uses the public HTTPS host and the callback path required by the current Drone integration.
- Sign in to the Drone web interface and complete the provider authorization prompt.
- In Drone, activate the repositories you want to build. Repository activation grants Drone permission to receive events and create status checks according to the provider’s scopes.
- Push a small change or open a test pull request and watch for a new build in the web interface.
If no build appears after a push, first check whether the repository is activated and whether the provider delivered an event. A working login does not prove that webhook delivery, repository permissions or branch filters are correct.
Create a first pipeline
Drone reads pipeline configuration from a file named .drone.yml in the repository. A minimal Docker pipeline can look like this:
kind: pipeline
type: docker
name: default
steps:
- name: verify
image: alpine
commands:
- echo 'Pipeline is running'
- test -f README.md
Commit the file on a branch that your repository policy allows to build. The runner downloads the step image, starts a container for the commands and reports the result to the server. Replace the demonstration check with your project’s dependency installation, tests, linting and artifact commands. Pin step images to versions appropriate for your project once the pipeline is validated; a floating tag can change independently of your repository.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
When a step needs credentials, store them as encrypted repository or organization secrets and reference them through Drone’s documented secret syntax. Never print secret variables in commands or save them to build artifacts.
Verify each layer before troubleshooting the next
Server health
docker compose psshows the server as running.docker compose logs drone-servercontains no fatal configuration error.- The public HTTPS page loads through the configured domain.
- The first administrator can authenticate through the Git provider.
Runner registration
- The runner container is running and does not restart continuously.
- Its
DRONE_RPC_HOSTresolves from inside the Compose network. DRONE_RPC_PROTOis exactlyhttporhttps.- Its
DRONE_RPC_SECRETexactly matches the server value. - The runner reports available capacity rather than remaining permanently offline.
Build execution
- A repository is activated and has a valid
.drone.yml. - The runner host can pull the images referenced by the pipeline.
- The VPS has enough memory, CPU, disk and network bandwidth for the configured capacity.
- Build logs show the expected commands and exit status.
Choose runner connectivity deliberately
Runner in the same Compose project
Using drone-server as DRONE_RPC_HOST keeps RPC traffic on Docker’s private network. The community example that uses this arrangement sets the runner protocol to http. Treat that as a same-host implementation detail rather than proof that every remote deployment can use HTTP.
Runner on another VPS
A remote runner must reach the server address over the network. Use an address and protocol that are actually reachable from that machine, normally the public HTTPS endpoint, and protect the route with firewall rules and TLS. The requirement for HTTPS in every remote-runner topology is not established by the available setup notes, so verify the current Drone runner documentation before exposing RPC beyond the private network.
Regardless of topology, the server and runner must use the same RPC secret. Changing the secret requires updating both services and restarting them in a coordinated manner.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsUnderstand the Docker socket security trade-off
Mounting /var/run/docker.sock is what allows the Docker runner to create build containers. It also means a malicious or compromised pipeline can potentially request Docker operations with authority comparable to the host’s Docker daemon. On a shared VPS, this is a host-isolation boundary, not a harmless file mount.
- Run the runner on a VPS dedicated to CI jobs rather than alongside unrelated production workloads.
- Limit who can activate repositories and edit pipeline files.
- Review pull-request policies before allowing builds from untrusted forks to run with secrets or privileged capabilities.
- Keep the host kernel, Docker Engine and images patched.
- Use firewall rules to expose only the HTTPS entry point and required administration services.
- Monitor Docker containers, disk consumption and unusual outbound traffic.
If your threat model cannot tolerate Docker-socket access, do not treat this runner as a strong sandbox. Choose an execution design with a stronger isolation boundary and validate its operational cost separately.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Capacity, persistence and maintenance
Set capacity from measured resources
DRONE_RUNNER_CAPACITY is a concurrency ceiling, not a performance guarantee. Start conservatively on a 2-vCPU, 2-GB VPS, observe memory pressure and queue time, then adjust or resize. A high value can cause several image pulls and compilers to run simultaneously, leading to swapping or failed builds.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Protect the server data
The Compose volume mounted at /data contains server state. Include it in your VPS backup plan and periodically verify that a restore is possible. Back up the environment file separately through a protected mechanism because it contains credentials that should not be placed in a public repository.
Recommended Free Tools
Update images intentionally
Use the major image families shown above, but do not assume a guide written years ago reflects the current stable release. The available setup material does not establish the stable Drone release tag as of October 2026. Before upgrading, read the current release notes and server-install documentation, take a backup, pull the new image, recreate the containers and run a test pipeline. Keep a known-good image reference and rollback procedure until the test succeeds.
Troubleshooting by symptom
| Symptom | Likely checks | Corrective action |
|---|---|---|
| Runner stays offline | Compare the two RPC secrets; verify host name, protocol and network reachability. | Regenerate the secret if necessary, place the identical value in both services, then run docker compose up -d --force-recreate. |
| Runner container restarts | Read docker compose logs drone-runner for an invalid protocol, missing variable or denied socket. |
Use exactly http or https, correct the environment file and confirm the Docker socket exists and is mounted. |
| Login redirects to the wrong URL | Compare the public domain, server protocol and OAuth callback registration. | Use the same HTTPS host in all three places and recreate the server after changing environment values. |
| Web page is unreachable | Check DNS, certificate status, proxy forwarding and the loopback listener with docker compose ps. |
Fix the proxy-to-127.0.0.1:8080 route and firewall rules before changing Drone settings. |
| Build is queued indefinitely | Confirm the runner is registered, capacity is nonzero and the runner host has resources. | Resolve registration first; then lower concurrent load, add capacity or resize the VPS. |
| Build fails while pulling an image | Check outbound DNS, network access, registry limits and available disk. | Restore registry connectivity or disk space and retry; do not raise runner capacity to mask an image-pull problem. |
| Repository receives no builds | Check repository activation, webhook delivery, branch filters and provider permissions. | Activate the repository and correct provider-side event or permission settings. |
Operational checklist
- Ubuntu 22.04 or 24.04 is patched and has at least 2 GB RAM and 2 vCPUs.
- Docker and the Compose plugin came from Docker’s APT repository.
- A DNS name resolves to the VPS and HTTPS is valid.
- The server uses
drone/drone:2; the runner usesdrone/drone-runner-docker:1. - OAuth values match the selected Git provider’s current Drone instructions.
- The RPC secret was generated with
openssl rand -hex 16and matches in both services. - The runner protocol is exactly
httporhttps, and its host is reachable. - The Docker socket mount is intentional and the VPS is trusted for CI workloads.
- The
/datavolume and protected environment file are backed up. - A test repository completes a pipeline before production repositories are activated.
When this VPS model is appropriate
A self-managed VPS is a good fit when you need control over where build data runs, can maintain Docker and the operating system, and accept responsibility for TLS, backups, upgrades and incident response. It keeps the recurring infrastructure boundary in your hands but makes the Docker socket and host security your responsibility.
A managed CI service removes much of that host maintenance, but changes the available isolation, networking and data-control model. Compare those trade-offs before migrating an existing workload. For a small self-hosted installation, begin with one dedicated VPS, one runner and a deliberately low capacity; expand only after real build behavior justifies it.
Frequently Asked Questions
Can I run Drone on a raw IP address without HTTPS?
You can experiment with plain HTTP or an IP address, but the expected deployment uses a real domain with HTTPS. Treat raw-IP and tunnel-based configurations as temporary tests and use the public HTTPS host for a production OAuth integration.
Why does the runner need access to /var/run/docker.sock?
The Docker runner starts each pipeline step as a Docker container, so it needs to communicate with the host Docker daemon. That mount also gives pipeline code significant host-level control; use a dedicated, trusted CI host when this risk is unacceptable on a shared server.
What should I do before changing Drone image versions?
Back up the server data volume and environment file, read the current release notes and install-variable documentation, test the replacement image with a sample repository, and keep a rollback image reference until the test passes.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

