Introduction: Complete Indoor Aquaponics - Start to Finish

Aquaponics is the combination of growing plants in soilless medium as seen in hydroponics, and raising fish (aquaculture). Together they provide the perfect partnership for optimal growth. The fish provide a continuous supply of organic fertilizer for the plants, and the plants clean the water for the fish. At the same time, aquaponics minimizes water waste due to it's perpetual recycling of the water in the system. Aquaponics has been successfully used in areas of the world effected by drought, pollution, and even lack of farmable land (such as cities). Many people have been interested in aquaponics, but are unsure of where to start or are nervous about getting started. In this guide I will take you from start to finish, and show you in detail how to build your own aquaponics system for indoor use. Such systems are perfect for those interested in growing their own food, but don't have the land or environment necessary to do so. Let's get started.

Step 1: Aquaponics Basics

Before we begin constructing our aquaponics system, it's important to have a basic understanding of how everything works. First, the parts of the system:

Fish Tank - The fish tank is exactly what it sounds like. This is where the fish reside. It can be anything from a 55 gallon barrel to a swimming pool. The fish tank should be made of non-toxic materials, and large enough to meet the needs of your fish.

Grow Bed - The grow bed is where your plants will grow. The grow bed should also be made of non-toxic materials, hold water, and be strong. The grow bed should be deep enough to sustain proper root growth for your plants; ten to twelve inches deep is the standard here. It will be filled with grow media to hold the plants and allow roots to grow.

Ebb and Flow (Flood and Drain) - This is the type of aquaponics system I will be using in this instructable. This type of system floods the grow bed, and then drains through a siphon providing nutrient rich water and oxygen for the roots.

Things to consider before building your indoor aquaponics system:

When designing your own system you will want to consider several things. First where will your system reside? Water weighs 8.34 pounds or 3.78 kilograms per gallon. Multiply that by the total volume of your system to find the total water weight. In the example here I have 55 gallons in my fish tank which is about 459 pounds or 208 kg. The grow bed will contain grow media which is also quite heavy. Consider your system could weight up to 1000 pounds or more. You will want it placed in an area that can sustain such weight.

Other things to consider is the water your system holds. Should your system fail and spill of it's contents on the floor what will that look like? Will 55 gallons of water destroy the area your system resides in?

Since this system is designed to be indoors, the environmental conditions can be controlled to an extent. Water temperature, light, and humidity are important factors to consider when selecting plants and fish. Technically speaking, you could be living in Canada and grow bananas in your aquaponics system. The right conditions will need to be created, but by building your system indoors these conditions can be met. Consider the power requirements this might need when selecting your plants and fish.

Step 2: The Grow Bed

The grow bed I built here is constructed of plywood. The inside dimensions are 24"x 36"x 10". I drilled two holes in the grow bed. The first hole is in the bottom for the siphon. This hole is big enough for a 3/4" male pvc adapter to fit into. The second hole is towards the top of the grow bed. This hole is a fail safe. If the siphon fails for any reason and the grow bed continues to flood, this hole provides an escape for the water to flow back into the fish tank rather than all over the floor. I cut mine big enough for a 1/2" piece of pvc pipe to fit into.

This grow bed is made out of plywood so it will need to be coated with a non-toxic water proof covering before it can be used for your indoor aquaponics system. For this I used Flex Seal. Flex Seal is great for water proofing any part of your system you don't want to get wet, and once cured, is non-toxic and non conductive. It takes 24 hours to cure, so plan ahead and take your time with this step. Make sure you cover every part of your tank to ensure proper water sealing; any small hole left uncovered could destroy your grow bed when exposed to water over time.

Step 3: The Fish Tank

For my indoor aquaponics system I'm using a 55 gallon tote. They're relatively inexpensive, water tight, and non-toxic. They do expand and bulge out when water pressure is applied to the walls so I had to construct a frame to keep it from breaking. I built some plank supports on top of this frame to support the grow bed. Make sure these planks are at least 4 inches tall to provide enough clearance for the plumbing coming from the siphon to the fish tank.

Step 4: The Siphon

A bell siphon is used in ebb and flow aquaponics and hydroponics systems in order to regulate the flow of water. In an ebb and flow (also known as flood and drain) system water is pumped into the grow bed. At a specific point (usually 2 inches below the surface) the water drains via the bell siphon. When the water reaches the bottom you will hear the classic gurgle indicating the end of the drain phase. The process will then repeat itself over and over again. The bell siphon is such an important part of any ebb and flow system that getting it right is crucial.

Parts and Tools needed to make a Bell Siphon:

Gravel Guard 1 - 3" PVC pipe (approximately 12" long)

Bell Dome 1 - 2" PVC pipe (approximately 10" long)

1 - 2" PVC cap Bell Siphon

1 - ¾” PVC pipe (approximately 6" long)

1 - ¾” to 1 ½” bell adapter

Grow Bed Connections 1 - ¾” Male adapter (thread to slip)

1 - ¾” Female adapter (thread to slip)

2 - #18 o-rings Drain Pipe 2 - ¾” PVC pipe 4" long

1 - ¾” 90° elbow


Drill or Dremel

Drill bit (⅛”)

Preparing the Dome and Guard

I created a guide that you can use to make clean and equally spaced holes around the bottom of your gravel guard and bell dome. First download the “Bell Holes Guide” document (link to dropbox) and print it. You will likely get an error message saying, "The margins of section 1 are outside the printable area of the page. Do you want to continue?" Click Yes. Cut out the two guides, wrap each guide around the bottom of your PVC pipes (the 3" gravel guard, and the 2" Bell dome), and tape them in place. Use the guide to drill ⅛” holes around the bottom of each pipe. Remove the guides and clean up any leftover PVC dust or tags.

Building the Siphon

Follow the Bell Siphon Diagram to put the siphon together. Start with the male and female adapters. Take the male adapter and slip a #18 o-ring over the threads. Insert the adapter through the access hole in the grow bed. Slip another #18 o-ring over the top of the male threads. Screw the female adapter to the male adapter (no jokes here folks) making sure you have a tight connection. It’s not necessary to get the tools to tighten it, hand tight or even slightly less than is fine (you'll be checking for leaks later anyways so it's not necessary to overdue it). Slip a 6" piece of 3/4" PVC pipe into the female adapter (The diagram says this is 4", start with 6" and check the water line when you're done. If the water line is too high, make a note and adjust this pipe as needed). Slip the 3/4" to 1 1/2" bell adapter on top of the 3/4" PVC pipe . To create an effective drain flow it is important that the opening of the Bell is double the size of the pipe (¾” * 2 = 1 ½”). Slide the PVC Bell Dome (Again, start with 10" and adjust if the water line is too high) over the drain pipe, and the PVC stone guard over this. For the underside of the grow bed slide a piece of ¾” pipe into the bottom of the adapter. Slide a ¾” PVC 90 into the bottom of this pipe, and from there another ¾” PVC pipe. Depending on the location of the fish tank you will need to size these last two pipes appropriately.

Test it out

After you have your bell siphon put together feel free to test it by filling the tank. Take note of the water level where the siphon starts, and especially the max height of the water. The max height of the water should be 2" below the grow media surface. If you need to adjust any pipes now is the time to do it. For example, if your water line is an inch above the mark, take an inch off the top of the siphon pipe, and an inch off the top of the bell dome.

Step 5: Ebb and Flow Automation

Automated Water Pumps

One thing I really wanted to automate was the pumps. In an Ebb and Flow system you would normally need to watch how long it takes to fill up the grow bed until it begins to drain down the siphon. You would then set your pump to a timer so that your grow beds aren’t sitting in too much or too little water for too long. This is tedious, and the fillup time is variable.

To automate the process I’m using an Arduino Uno Microcontroller to receive an input signal from a Hygrometer (moisture sensor). Depending on the signal (wet or dry), the arduino will turn the pump on or turn it off. In action the pump will be on until the grow bed fills up and the siphon activates the drain process. When the water drains, the hygrometer will pick up on the moisture (100% in this case) and tell the arduino to shut off the pump for 30 minutes. After this dry cycle, the arduino checks the hygrometer for moisture (it’s been dry for 30 minutes) and turns the pump on again if it’s dry. This takes care of the variable flood times, and ensures a proper flood and drain cycle.

Parts for the flood and drain automation system



5V 1 Channel Relay



3/4" T fitting


Wire Strippers

Various Wires

Setting it up

Follow the instructions here to setup your arduino for the first time. Once you have the arduino software on your computer you can download the sketch for the automated ebb and flow system here. Once you’ve downloaded the ebb and flow sketch you can open it and upload it to your arduino board. If everything has uploaded successfully you can begin hooking up all the hardware to make the magic happen.

The hygrometer sensor checks for water in the drain pipe. Because of this we need to make a module containing the hygrometer that connects to the drain pipe. I did this by inserting a ¾” PVC T in line with the siphon drain pipe. I made a module out of a small piece of ¾” pipe with a ¾” cap on top. The hygrometer is contained within this end cap with two holes to allow the sensor wires to connect to the arduino. To prevent any leaks or damage you can cover the holes and secure the hygrometer inside with non-toxic silicone or flex seal.

Step 6: Flooding


Flooding the grow bed is easy enough. I used 1/2" PVC pipe going from the pump to the grow bed. Between the pump and the grow bed I created a branch that supplies water back into the fish tank. This creates a break in the water which provides oxygen for the fish.

You may need to fool around with various pvc pieces to fit the pvc pipe into the pump. I used a brass barb hose splicer (sanded one end of the barbs) to fit into the pump hole. On the other end I fit a small piece of 1/2" pvc which I made water tight with flex seal. Then I fit a 1/2" pvc couple over the 1/2" pvc pipe. The delivery pipe can then slip into this couple.

Once you're able to attach the intake pipe to the pump, find a good place for you pump to sit in your fish tank. Then attach the intake pipe to the pump and let it rest in a position to allow water to flow into the grow bed. I secured the flow intake pipe with a plastic clip found at any hardware store in the plumbing section.

Step 7: Grow Bed Media

After you're sure the plumbing is working properly it's time to fill the grow bed with grow bed media. When choosing media there are several things worth considering. Some of the biggest factors to consider are cost, weight, pH neutrality, and surface area. Here is a short list of some of the most common media used in aquaponics.

Hydroton Clay Pebbles - Clay pebbles are a great choice for grow media. They are pH neutral, easy on the hands, light weight, have a large surface area, and don't break down. This media choice is traditionally what you will find in most aquaponics systems. One downside to hydroton clay pebbles is it's expense. They are by far the most expensive choice.

Lava Rock - Lava rock is another great choice because they are pH neutral, light weight, and have a large surface area. They are cheaper than clay pebbles, and you can often find it for free if you know where to look. The downside to lava rock is they can be rough on the hands and roots if you handle them too much.

Pea Gravel - The biggest advantage to pea gravel is it's much cheaper than the other alternatives. That said, pea gravel comes with many problems. Pea gravel has a smaller surface area than other choices, is heavier, doesn't hold moisture very well, and can have negative effects on your systems pH.

As you can see from the pictures, I decided to use lava rock in my own system. From my own personal experience this is a very good choice for aquaponics systems. An important step to take before adding the media to your grow bed is washing/rinsing it thoroughly. I used a 5 gallon bucket to do this.

Take a 5 gallon bucket and drill several holes in the bottom for sediment and dirt to drain out of. Use a garden hose to spray off the media while you separate the clean media from the dirty media. Once the media is clean from dust and dirt, add it to the grow bed until you've filled it completely.

Step 8: Grow Lights

Plants need a special kind of light to grow properly; you can't just turn on a lamp and call it good. You'll need specific lights called grow lights for your plants to grow properly. There are all kinds of grow lights out in the market. You can find anything to meet your needs on Amazon and even some basic models at Walmart.

You can actually set your Lighting to an AC timer since it doesn’t require any input. Grab an AC timer from the store (after you’ve paid for it obviously) and set it to 16 hours on, and 8 hours off. To save yourself on energy costs, make sure the off cycle is happening during your actual peak power times. For most of us this is between 2PM and 8PM on weekdays, and 7AM to 2PM and 8PM to 10PM on weekends.

Step 9: Cycling Your Aquaponics System

You have your fish tank, the grow bed is filled with media and is ready to go. The pump and plumbing is working perfectly. Everything is looking good and you’re ready to get things growing! This is an exciting moment, but don’t be too quick to rush into growing just yet. The final stages of setting up your aquaponics system is making sure the chemistry is right. To do this we need to cycle the system, a process that takes ten days to a month to do.

Cycling is the process of establishing a healthy system that converts fish waste into healthy plant food (nitrates) effectively. To do this, your system needs to establish a healthy level of bacteria. In this process you will need a test kit to track water pH, ammonia, nitrites, and nitrates. You will also want to test water temperatures as well. Don’t worry, you don’t need a degree in chemistry to do this. The process is very simple if you follow the steps and track the data religiously.

For this process you will need an aquarium test kit. I’m using the API Freshwater Master Test Kit, sold on Amazon or at pet stores. You will also need a thermometer to check water temperatures. For this I used a cooking thermometer because I had it on hand already. You will also need ammonia to jump start the process. It must be pure ammonia. Look for this in the cleaning supplies section of your grocery store. Make sure it is pure; you will find two ingredients in it, water and ammonia. Make sure it doesn’t have any added scents or coloring; I can’t stress this enough.

Once you have everything you need you can start the process of cycling your aquaponics system as follows:

  1. Measure out a small amount of ammonia (take note of how much was added) and add it to the tank until you obtain a reading 5 ppm. Make sure you are tracking temperature, pH, nitrites, and nitrates from day one.
  2. On a daily basis, add that same amount of ammonia and continue to measure and record temperature, pH, nitrites, and nitrates until the nitrites show 0.5 ppm.
  3. Once nitrites show 0.5 ppm, add only half the amount of ammonia you have been adding for the past couple of days. Continue to do this daily and remember to keep tracking your data.
  4. Once nitrates appear ( between 5 and 10 ppm), and the nitrites have dropped back to 0, you can add your fish and stop adding ammonia to the system.

Feel free to plant in the grow bed during the cycling process. Your plants will show some deficiency at first, but will help in getting your system up to appropriate levels to self regulate. After the cycling process your plants will begin to flourish. Fish should be added after the cycling process because the levels of ammonia during the process will more than likely kill them. Once the fish are added they will provide the ammonia naturally.

Step 10: (Trans)Planting

Adding plants to your indoor aquaponics system is very easy. You will need a plant that has already established at least a small root system. Remove the plant from it's current home and wash off as much dirt as possible. In the grow bed, create a small hole by displacing the rocks in the area you want to establish your new plant. Place the plant in the hole and replace the media that was removed to make the hole. You can adjust the way your plant is sitting in the hole so that it's not falling over by adjusting the rocks that hold it up. The roots will grow and establish themselves in the grow bed in a few weeks time.

Step 11: Fish

In your aquaponics system, the fish will be providing the fertilizer for the plants you will be growing. Because of this, you will want to make sure they are happy and healthy. Some things to consider when choosing a fish are the size of the fish, pH tolerance, temperature tolerance, oxygen needs, dietary needs, and whether you yourself are planning on harvesting the fish down the road. I've provided a list of common fish to use in aquaponics and their requirements (see photos).

In my own system I decided to use Channel Catfish. I went with catfish for several reasons. First, I will be harvesting my own fish and I particularly enjoy the taste of fried catfish. Second, catfish have a high tolerance for colder climates and lower levels of oxygen; they are a very hardy fish. Third, they are extremely easy to feed. Catfish are omnivorous and require a good balance of plant and animal protein as well as plant based nutrients and amino acids. The cheapest food out there without sacrificing nutritional requirements I have found is cat food. It can’t get any easier than that. On a side note, cat food is shaped and packed in a way that would make it optimal in an Automatic Fish Feeder.

You don’t have to feel limited by fish if you would prefer a different route. Other aquatic animals known to have been used in aquaponics include such species as turtles, ducks, freshwater shrimp, worms, and crayfish. If you would rather use one of these creatures instead of the traditional fish then go for it.

Step 12: Supplementing Your System

For the most part, your new aquaponics system is self sustainable, provided you feed your fish frequently and check pH, nitrite, and nitrate levels every now and then. That being said there may come a time when your plants need a little extra boost. In such times I have a few tricks up my sleeve that are pretty effective. This step is completely optional, and is "for your information" only.

Banana Tea - Banana tea is an organic potassium fertilizer that aids plants during times of flowering and fruiting. This is easy to make at home, and is completely safe to add to your aquaponics system. To make banana tea, chop up five banana peels and place them in a pot with one liter of water. Put the pot on the stove and boil for 15 minutes. Discard the banana peels and save the remaining water by straining the mixture over an empty container. Finally, add an additional two liters of water to the banana tea.

Egg Shell Powder - Egg shell powder can help remedy calcium deficiency in your plants and raise pH levels. Save any egg shells you may normally discard until you have 12 - 24 egg shells. Make sure they are rinsed properly and allow them to dry. Put them in the microwave for a couple minutes to destroy any bacteria growing on the egg shells. Put the egg shells in a blender and blend them to a powdery consistency. Use this in your system as needed by sprinkling it into your grow beds.

Seaweed Extract - Seaweed extract is another great additive to give your plants an added potassium boost along with other trace elements. First gather seaweed from the beach or shore and rinse it thoroughly. Fill a five gallon bucket with water (approximately 3/4 of the way up) and soak the seaweed in this bucket. Stir the seaweed every three to four days until you can no longer smell ammonia coming from the mixture. After a few weeks it should be ready to use. Discard any solids and add water to the remaining liquid to dilute (3 parts water to 1 parts seaweed extract). Use as needed by pouring it into your system.

Water Contest

Runner Up in the
Water Contest