The GoGrow planning, homesteading, and image annotation app
GoGrow is a Flask application written in HTML, CSS, JS, and Python. It's designed to assist gardeners, farmers, project managers, drone operators, preppers, planners, or anyone in need of an efficient mapping or image annotation tool to mark a place, feature, or thing.
GoGrow is an open-source application that provides a thoughtful UI to annotate, mark, and keep track of images or projects. It empowers users to plan and track their changes to projects, whether on a large scale or on a more personal level. With modern access to high-resolution camera drones and satellite imagery, users can leverage a vast array of public and private imagery to upload and work with in GoGrow - from expansive territories, to personal homesteads, to backyard square-foot gardens. GoGrow prioritizes user privacy and data ownership, offering a user-friendly workflow for local annotation and collaboration on PNG and JPG images. Its versatility and modularity make it suitable for diverse industries and individuals seeking precise image annotation and marking. With GoGrow, you can seamlessly place and plan projects, structures, and associated information while enjoying a user-centric experience.
GoGrow prioritizes privacy and data ownership. The application operates completely offline, with all essential components like icons and scripts embedded within it. Your data stays on your device and is not logged, sent to third parties, or used for any other purpose.
GoGrow is open source, ad-free, and easily self-hosted. It provides access to annotation, editing, and mapping functions without the distraction of ads and contains no geolocation or tracking.
GoGrow supports collaborative mapping and image annotation by LAN access, making it a useful tool for team projects that require detailed visual data feedback. You can annotate logos, art pieces, or character designs - pretty much anything in PNG or JPG format (RAW and DNG support is experimental at this time).
Interactive Map: Visualize and navigate your homestead, garden, or farm with an intuitive and user-friendly map interface. Upload any image to annotate and add markers, from high-resolution drone aerial photos to simple overhead pictures taken from your smartphone. It's versatile for planning and building campsites, worksites, gardens, orchards, structures, and more.
Customizable Markers: Create, edit, and delete markers or lines to represent planting zones, fences, orchards, electric lines, water sources, and other vital points of interest. You can even use your own SVG icons!
Track your progress over time: Keep track of your work progress by adding notes to markers you place and lines you draw. Record your experiences, observations, or any insights that may help you in the future about a particular place or feature on an image.
Organized Categories: GoGrow automatically sorts your uploaded images (and a database with all of your marker and line data) into "image folders" to efficiently organize the different features you want to mark and keep notes on. Switch between these image folders with just one click. or tap.
Custom Backgrounds & Themes: Personalize the app with a variety of available background textures and themes, or include your own background for more personalization.
Responsive Design: Seamlessly plan and manage your image-based projects across various devices, and pick up where you left off.
Extensible: Built on open-source technologies, GoGrow is adaptable and ready for future expansion and updates.
Data Security: Export your data whenever needed. GoGrow does not send your data to any third parties.
Docker and Multi-Platform Support: GoGrow is easy to install with docker or by simple command line commands. Instructions are provided for running the app on your LAN, enabling collaboration on maps with others, even on mobile devices and tablets (through the device's web browser) with GoGrow's responsive web design and user interface.
Extensive rich text journal system: GoGrow provides a comprehensive journal system that allows you to create and manage detailed journal entries. The rich text editor (Quill) enables you to format text, add images, create lists, and apply styles to your journal content seamlessly. Journal entries are organized into image folders, just like the data for markers and lines - making it easy to navigate and manage your journal entries. The interface allows you to view and modify the title, content, linked items, and favorite status of each journal entry, and includes a powerful journal search function.
Linked Items: GoGrow supports linking journal entries to markers and lines on the map. You can associate specific journal entries with markers or lines you place on your uploaded image or map to provide additional context and reference relevant information. Click on the "Show on Map" button, and a popup showing the position of the linked marker or line appears for easy reference
GoGrow is an actively developed application, and as such, occasional bugs or frequent changes may occur. We kindly request that you exercise caution and be aware of this fact before entrusting your data to the application. The author(s) and developer(s) of GoGrow cannot be held responsible for any damages, whether tangible or intangible, that may arise from the use or misuse of the application.
We strongly advise against using the application for any harmful or malicious activities. GoGrow, its developers, owners, and related parties make no guarantees or assumptions regarding the security or safety of the application. It is your responsibility to ensure the appropriate usage and protection of your data while using GoGrow.
Please proceed with caution and make informed decisions when using the application.
Docker compose and Docker run are the easiest ways to get up and running with GoGrow.
Ensure Docker and Docker Compose are installed and running correctly, and you can follow the below steps:
Clone the GoGrow repository or download the zip file from the repository.
Navigate to the directory where you've saved GoGrow in your terminal (there should be a Dockerfile and docker-compose.yml file present).
Use the included, or make/edit your own version of the docker-compose.yml
file in the same app directory as the Dockerfile. Below is an example docker-compose.yml
- it maps only the img and backup folders, and makes the app available on port 5000:
version: '3'
services:
gogrow:
build: .
ports:
- "5000:5555"
volumes:
- ./img:/app/gogrow_app/img
- ./backups:/app/gogrow_app/backups
In your terminal, type docker-compose up -d
to build and run the GoGrow app as a Docker service.
Navigate to the IP address and port you've set (default is localhost:5555), and enjoy the app!
These Docker Compose commands spin up a new GoGrow service using Docker on port 5000 and makes the "backups" and "img" subdirectories easy to access. You may also decide to map the icons or textures folders if you wish to use your own icons and textures in GoGrow!
You may also choose to run GoGrow as a flask web app directly - you can follow the below instructions to accomplish this.
pip install -r requirements.txt
to install the necessary dependencies.python runserver.py
in your terminal.If using Docker, GoGrow should be started automatically and available at the specified port used in the docker compose, or docker run command.
If using GoGrow as a Flask app, on startup GoGrow will ask if you want to use the default settings (port 5555) - you can enter "yes" here to use these settings, or "no" to specify the port and other settings that GoGrow should use when it launches.
/icons
folder in the app's root directory./static/textures
directory and they will be selectable in this dropdown whenever the settings page is accessed next./backups
folder./img
folder, but only if there isn't already an existing image folder with the same name. This is for security reasons - please delete the image folder in /img
before attempting to restore a backup for that image folder.GoGrow includes a custom theme option that's easy to edit via the included config.cfg file - just open it up in a text editor, and you should see a section towards the bottom of the config file for making your own custom theme. You can change each hex color value to the color of your choice, and then restart the gogrow app after saving your changes to the config file. You should be able to select the custom theme on the settings page, and then you should see your new theme color changes across the app.
Contributions, collaboration, pull requests - We welcome all of these. If you have a good idea that's in the scope of the GoGrow project, please open a pull request or jump into a discussion with us. We'd love your feedback on how GoGrow can be even more useful and functional!
GoGrow is a work in progress - please keep this in mind, though I'll try my best not to introduce any major breaking changes or backward-compatibility issues. Export and save your data often!
To do list:
Possible features I might add at a later date:
As the sole developer on this project, I (DaytimeLobster) work on it in my spare time and fund all related expenses out of my own pocket. If you find this project useful and want to show appreciation, you can donate to my coffee fund on Patreon. You can also check out my blog at gogrow.io, where I share updates about the GoGrow app and write about various tech and homesteading topics.
Any support is greatly appreciated and will be used to help me continue development and maintain this project!
Thanks for checking this project out - please give the project a star if you like it, and check back for updates!
copyright 2023 Firespawn Studios, LLC - Digital and Physical Arts Studio