Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
servers:
  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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【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_BASE for Rails cryptographic operations.
  • VAPID_PUBLIC_KEY and VAPID_PRIVATE_KEY for browser push notifications.
  • SMTP_USERNAME and SMTP_PASSWORD for 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Generate 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Initial deployment checklist

  1. Confirm the SSH user can reach the VPS and perform the operations required by Docker.
  2. Confirm the VPS address in servers/web resolves to the intended host.
  3. Confirm the public DNS name points to that host.
  4. Confirm proxy/host and BASE_URL use the same public hostname.
  5. Confirm .kamal/secrets exists locally and is not committed.
  6. Confirm the storage volume is persistent if local disk is selected.
  7. Run bin/kamal setup from the fork containing the edited configuration.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

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
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【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:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
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

  1. Make and review the change in your fork.
  2. Confirm that secrets and persistent-storage settings were not accidentally removed.
  3. Commit the change so the deployed revision is identifiable.
  4. Run bin/kamal deploy.
  5. Open the public URL and exercise a representative page, notification and attachment workflow.
  6. 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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

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.

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.