Ever wanted to have your very own cloud storage solution right at home? Hosting your own cloud can provide you with better control over your data, allowing for easy access and sharing without relying on third-party services. In this guide, we’ll walk you through the process step-by-step, ensuring that even a beginner can set up their cloud with ease!

Table of Contents

Development Setup

To get started, clone the project repository and navigate into the project directory:

git clone https://github.com/antoniosaros/home-cloud.git
cd home-cloud

Local Setup (Linux & Windows)

Install the necessary dependencies:

cd server
npm install
cd ..client   # ..client on Windows
npm install

Run Locally

Backend

Navigate to the server directory and configure your environment:

cd server
Open sample.env and copy its content into a new file named .env, then set the correct value for HOME_CLOUD_STORAGE.
Start the server:
npm run dev

Frontend

Now, for the frontend, navigate to the client directory:

cd client
Open sample.env and copy its content into a new file named .env, then set the correct value for REACT_APP_API_URL.
Start the development server:
npm start

Keep in mind that the backend will run on port 5000 while the frontend will be on port 3000 (or whatever is available).

Docker (Linux)

If you prefer Docker, set the appropriate environment variable:

export HOME_CLOUD_STORAGE=home/user/example
Create a .env file in .client, and set the value:
REACT_APP_API_URL=http://localhost:8081

Next, install dependencies with:

docker-compose run express npm install
docker-compose run react npm install

To run your setup on Docker containers, execute the following command:

docker-compose up

In this case, the backend will serve on port 8081 and the frontend on port 8080.

Run on Docker Containers

For Docker containers, follow the instructions given in the previous section.

Production Setup

Backend

In the server folder, ensure the environment variable HOME_CLOUD_STORAGE is set. Then, launch the server:

npm start

Frontend

In the client directory, create a .env.production file:\

Create a file named .env.production, set the correct value for REACT_APP_API_URL.
Install the serve package globally:
npm install -g serve

Next, build your application and start the server:

npm run build    # Or yarn build
serve -s build -l 3000    # Or another port of your choice

Docker Production Setup

For deploying with Docker, set the environmental variable:

export HOME_CLOUD_STORAGE=home/user/example
Create a .env.production file in .client and set the API URL:
REACT_APP_API_URL=http://192.168.1.2:8081

Finally, build your images and run containers:

docker-compose -f docker-compose.yml -f docker-compose.prod.yml up

Troubleshooting

If you encounter any issues while setting up your cloud, consider the following:

  • Check your environment variables: Ensure that all necessary variables such as HOME_CLOUD_STORAGE and REACT_APP_API_URL are set correctly.
  • Port Conflicts: Verify that the ports you are using are not already in use by other applications.
  • Dependency Issues: Confirm all dependencies are installed correctly and match the required versions.
  • Logs: Always check the logs for both the backend and frontend for any error messages that may guide you to the issue.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Conclusion

Congratulations! You’ve successfully set up your own cloud storage solution at home. Now you can access and manage your files seamlessly, enjoying the benefits of self-hosted services. With a little practice and patience, you will find managing your cloud as easy as pie!

About the Author

Hemen Ashodia

Hemen Ashodia

Hemen has over 14+ years in data science, contributing to hundreds of ML projects. Hemen is founder of haveto.com and fxis.ai, which has been doing data science since 2015. He has worked with notable companies like Bitcoin.com, Tala, Johnson & Johnson, and AB InBev. He possesses hard-to-find expertise in artificial neural networks, deep learning, reinforcement learning, and generative adversarial networks. Proven track record of leading projects and teams for Fortune 500 companies and startups, delivering innovative and scalable solutions. Hemen has also worked for cruxbot that was later acquired by Intel, mainly for their machine learning development.

×