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
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
To deploy Fizzy on your own VPS, use the project’s official Kamal workflow: fork the repository, run bin/setup, initialize Kamal, configure config/deploy.yml and .kamal/secrets, then run bin/kamal setup. Kamal prepares a Docker-capable server over SSH, builds the application container, configures it, and starts Fizzy. Later releases use bin/kamal deploy.
What this deployment gives you
This method runs Fizzy on infrastructure you control instead of a managed application host. Your VPS supplies the operating system, network address, disk, backups and Docker runtime. Kamal supplies the deployment mechanism: it connects over SSH, prepares a bare server, transfers the application, builds the container and starts the configured services.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The deployment has four important configuration areas:
- Web access: the server address, public hostname, TLS handling and Fizzy’s canonical URL.
- Secrets and notifications: Rails encryption credentials, browser-push keys and SMTP credentials.
- Data: persistent local storage or an S3-compatible object store for uploads.
- Account model: the default single-account behavior or optional multi-tenant mode.
The official material does not publish a universal CPU or RAM minimum. Select a VPS according to the number of users, attachment volume, email-notification traffic and the backup capacity you need rather than relying on an invented baseline.
#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: 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.
- Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.
Choose and prepare the VPS
Required server capabilities
Your host must run Docker and be reachable through SSH from the machine where you execute Kamal. You need administrative access for the initial setup, or a user that Kamal can use with the required privileges. A hostname or fixed IP address is preferable because it keeps later deployments and DNS configuration stable.
- Docker must be installable and runnable on the VPS.
- Inbound SSH access must work from your deployment workstation.
- The server needs outbound network access for image builds, application operation and email delivery.
- Allocate persistent disk for the operating system, Docker images, the database and Fizzy uploads.
- Plan an independent backup destination; a second copy on the same VPS does not protect against disk or host failure.
There is no official numeric sizing table for this deployment. Monitor disk growth, container memory use, database activity and notification volume after launch, then resize or move to a larger host when those measurements require it.
DNS and firewall planning
Choose the public name you will use for Fizzy, such as fizzy.example.com, and point its DNS record to the VPS before requesting certificates. Permit SSH from your administration network and allow the HTTP/HTTPS traffic required by the proxy. Keep any database or internal service ports private unless your own architecture explicitly requires otherwise.
Fork the repository and install its dependencies
Why use a fork
The documented workflow starts with a fork of the official Fizzy repository. A fork gives you a durable place for your deployment configuration and any controlled code changes. It also lets you pull future upstream changes while keeping your own commits identifiable.
Run the project setup command
Clone your fork on the workstation from which you will deploy, change into the repository, and run:
bin/setup
This prepares the local application environment using the project’s own setup process. Run it from the repository root and resolve any dependency or runtime error before initializing Kamal.
Free tools Windows power users keep installed
One-click scans. No signup required.
Initialize Kamal
From the same repository, initialize Kamal:
kamal init
The project also provides a bin/kamal wrapper. Using that wrapper is useful when the repository pins or expects a particular Kamal environment:
bin/kamal
Initialization creates the deployment configuration and the .kamal structure, including the place where secrets are read. Do not assume generated values are suitable for production; inspect every setting before the first setup.
Configure config/deploy.yml
Edit config/deploy.yml in your fork. Preserve the generated structure and change the values that describe your server and public URL.
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
Point Kamal at the VPS
Set servers/web to the VPS hostname or address. If you connect as a non-root account, set ssh/user to that account. The exact surrounding YAML is generated by Kamal, so edit the existing keys rather than creating competing sections.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsservers:
web:
- your-vps.example.net
ssh:
user: deploy
The host name above is an example value. Replace it with the address that resolves to your server. If you use root SSH, omit the non-root user setting only when the generated configuration and your host policy support that arrangement.
Set the public hostname and TLS behavior
Set proxy/host to the hostname users will enter in their browsers. When Kamal’s SSL support is enabled, it can obtain certificates automatically for that host. Do not enable automatic certificate issuance until DNS points at the VPS and the proxy can receive the required public traffic.
proxy:
host: fizzy.example.com
Set proxy/ssl: false only when TLS is intentionally terminated somewhere else, such as an upstream load balancer or reverse proxy. In that architecture, the upstream component must forward requests correctly and provide HTTPS to users; otherwise links and browser security behavior will not match your intended deployment.
Set Fizzy’s canonical URL
Under env/clear, set BASE_URL to the complete public URL, including the scheme:
env:
clear:
BASE_URL: https://fizzy.example.com
Use the same hostname and scheme that users actually open. A missing scheme, an internal host name or an HTTP value behind an HTTPS proxy can produce incorrect links in invitations, notifications and other generated messages.
Decide whether you need multiple accounts
Self-hosted Fizzy permits one account with unlimited users by default. Set MULTI_TENANT=true only when the instance must host multiple accounts:
env:
clear:
MULTI_TENANT: true
Do not turn this on merely because several people use the same account. It changes the instance’s account model and should be chosen deliberately before inviting users.
Create and protect .kamal/secrets
Keep credentials in .kamal/secrets, and ensure that file is excluded from version control. The file is read by Kamal when it configures the application; it should be present on the deployment workstation but never committed to the fork.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →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.
Required secret categories
The official configuration lists these secret values:
SECRET_KEY_BASEfor Rails cryptographic operations.VAPID_PUBLIC_KEYandVAPID_PRIVATE_KEYfor browser push notifications.SMTP_USERNAMEandSMTP_PASSWORDfor authenticated mail delivery.
Keep the file readable only by the account that performs deployments. Store a separate copy in your organization’s password manager or secret-management system so a lost workstation does not become a lost deployment.
Generate the Rails secret
From the repository, generate a random Rails secret with:
bin/rails secret
Copy the resulting value into .kamal/secrets as SECRET_KEY_BASE=.... Generate a new value for this deployment rather than reusing a key from an unrelated application.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallGenerate VAPID credentials
Open a Rails console in the project environment and run the documented Ruby code:
vapid_key = WebPush.generate_key
puts "VAPID_PRIVATE_KEY=#{vapid_key.private_key}"
puts "VAPID_PUBLIC_KEY=#{vapid_key.public_key}"
Copy the two printed assignments into .kamal/secrets. Keep the private key confidential. The public key is paired with it for push subscriptions, so do not mix keys from different deployments.
Configure SMTP credentials
Fizzy needs four mail settings: MAILER_FROM_ADDRESS, SMTP_ADDRESS, SMTP_USERNAME and SMTP_PASSWORD. Put the username and password in the secrets file. Set the sender address and SMTP host in the deployment environment according to the mail provider you use.
env:
clear:
MAILER_FROM_ADDRESS: notifications@example.com
SMTP_ADDRESS: smtp.example.net
The official guide uses SendGrid and Postmark as examples of third-party SMTP services; the deployment is not tied to either one. Whichever provider you select must permit outbound SMTP from your VPS and provide credentials that match the configured host and port requirements.
Choose persistent storage
Local disk: the default
Production uses local disk by default. In the Docker setup, the standard storage path is /rails/storage. Container filesystems are disposable: files written only inside a container can disappear when that container is replaced or restarted. Mount a persistent volume to the storage path and include that volume in your backup plan.
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.
- Confirm that the host directory or volume survives container recreation.
- Monitor free disk space as attachments accumulate.
- Back up the stored files independently of the container image.
- Test restoring a backup before you depend on it.
Local storage is straightforward and avoids object-storage credentials, but it couples attachment availability to the VPS and its disk. A host failure, accidental deletion or exhausted volume can affect both the application and its files unless backups are kept elsewhere.
S3-compatible object storage
Use object storage when you want attachments outside the VPS or need storage that can be expanded independently. Set ACTIVE_STORAGE_SERVICE=s3 and provide the documented variables:
Recommended Free Tools
ACTIVE_STORAGE_SERVICE=s3
S3_ACCESS_KEY_ID=...
S3_BUCKET=...
S3_REGION=...
S3_SECRET_ACCESS_KEY=...
CSP_CONNECT_SRC=...
Depending on the provider, also set S3_ENDPOINT and S3_FORCE_PATH_STYLE=true. The documentation also lists checksum-related settings; use the values required by your selected S3-compatible service rather than copying settings from a different provider.
When object storage is enabled, update the content-security policy connection setting so the browser can reach the storage endpoint. Keep access keys in .kamal/secrets when they are credentials, and grant the bucket only the access needed by this application.
How to choose
| Choice | Best fit | Operational responsibility |
|---|---|---|
| Persistent local disk | A simple single-VPS installation with manageable attachment volume | Volume persistence, disk monitoring and off-host backups |
| S3-compatible storage | Attachments that should be independent of the VPS or need separate storage scaling | Bucket credentials, endpoint configuration, policy and provider billing |
Run the first deployment
Before starting, verify that DNS, SSH, Docker access, the proxy hostname, BASE_URL, secrets, mail settings and storage choices are all consistent. Then run:
bin/kamal setup
The initial setup is more than a container launch. Kamal prepares the fresh host, builds the application container, applies the configuration and starts Fizzy. Watch the command output for SSH, Docker, certificate, image-build and application errors; the first failure usually identifies the prerequisite that is missing.
Initial deployment checklist
- Confirm the SSH user can reach the VPS and perform the operations required by Docker.
- Confirm the VPS address in
servers/webresolves to the intended host. - Confirm the public DNS name points to that host.
- Confirm
proxy/hostandBASE_URLuse the same public hostname. - Confirm
.kamal/secretsexists locally and is not committed. - Confirm the storage volume is persistent if local disk is selected.
- Run
bin/kamal setupfrom the fork containing the edited configuration.
Verify Fizzy after setup
Browser and URL checks
Open the configured public URL, not the VPS’s private address. Confirm that the browser receives the expected HTTPS certificate when Kamal manages TLS, and check that links generated by the application use the same canonical URL.
Email and push checks
Exercise an action that sends a notification and verify delivery through your SMTP provider. If mail fails, check the SMTP host, credentials, sender address, outbound firewall policy and provider restrictions. For browser push, confirm that the generated VAPID public key is paired with the private key stored for this deployment.
Persistence checks
Upload a representative attachment, restart or replace the application container using your normal operational procedure, and confirm the file remains available. This check is especially important for local storage because an unmounted /rails/storage directory can appear to work until the first container replacement.
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.
Deploy updates
After changing application code or deployment settings, commit the changes to your fork and run:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →bin/kamal deploy
Use the same repository and configuration that produced the running instance. Keep .kamal/secrets available to Kamal locally but out of commits. Review changes to config/deploy.yml carefully: a hostname, storage service or environment-variable change can affect running traffic even when application code is unchanged.
Safe update sequence
- Make and review the change in your fork.
- Confirm that secrets and persistent-storage settings were not accidentally removed.
- Commit the change so the deployed revision is identifiable.
- Run
bin/kamal deploy. - Open the public URL and exercise a representative page, notification and attachment workflow.
- Record any configuration change alongside the deployment revision.
Troubleshoot common failures
SSH or host preparation fails
Check the address in servers/web, the value of ssh/user, firewall rules and Docker availability. A server that is reachable by ping but refuses SSH is not ready for Kamal. A non-root user may need the host’s Docker permissions configured before setup can finish.
Certificate issuance fails
Verify that the proxy hostname resolves to the VPS and that public HTTP/HTTPS traffic reaches Kamal’s proxy. If another service terminates TLS, set proxy/ssl: false and ensure that upstream service is correctly forwarding requests. Do not treat disabling SSL as a fix when no other component provides HTTPS.
Links contain the wrong host or scheme
Compare BASE_URL with proxy/host and the URL users enter. Include https:// when the public site is HTTPS. Correct the configuration and deploy again with bin/kamal deploy.
Email does not arrive
Check all four mail settings, beginning with the SMTP hostname and credentials. Confirm that MAILER_FROM_ADDRESS is accepted by the provider, that the VPS can make outbound SMTP connections and that messages are not being filtered by the recipient. A successful container deployment does not prove SMTP is configured correctly.
Attachments disappear after a restart
For local storage, inspect the volume mapping for /rails/storage and verify that it points to persistent host storage. For S3, verify ACTIVE_STORAGE_SERVICE=s3, bucket and region values, credentials, endpoint settings and the content-security policy connection value.
Multiple-account behavior is unexpected
Check whether MULTI_TENANT=true is present. Without it, the documented self-hosted default is one account with unlimited users. Enable the variable only when separate accounts are an intentional requirement.
Operational decisions to make before production use
Backups
Back up the data that is not recreated by rebuilding a container: the database, local storage when used, and any deployment or secret-management records needed for recovery. Keep backups off the VPS and periodically verify that they can be restored.
Monitoring
Track disk capacity, container health, database growth, certificate renewal, SMTP delivery and object-storage errors. Because no official universal resource minimum is published, these measurements are the practical basis for deciding when to resize the VPS.
Change control
Keep deployment edits in the fork, commit each release and document changes to hostname, TLS, storage, SMTP or tenancy settings. Treat .kamal/secrets as a separately protected configuration source.
Quick Recap
Decision summary
| Question | Configuration answer |
|---|---|
| Can the host run Kamal? | It must run Docker and be reachable over SSH. |
| What controls the public address? | proxy/host and env/clear/BASE_URL. |
| Who handles TLS? | Kamal’s proxy when SSL is enabled, or an explicitly configured upstream terminator when proxy/ssl: false. |
| Where do credentials go? | .kamal/secrets, excluded from version control. |
| Where are uploads stored? | Persistent /rails/storage by default, or S3-compatible storage when explicitly configured. |
| How are later releases installed? | Commit the change and run bin/kamal deploy. |
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.

