Giter Club home page Giter Club logo

astuto's Introduction

Astuto - An open source customer feedback tool ๐ŸฆŠ | Product Hunt Embed

What is Astuto?

Astuto is an open source customer feedback tool. It helps you collect, manage and prioritize feedback from your customers, so you can build a better product.

Features

  • Collect and manage feedback
  • Create custom boards and statuses, to better organize feedback
  • Customize your roadmap, to let your users know what you're working on
  • Many more...

Requirements

  • Docker
  • Docker Compose

You can install Docker Desktop which includes everything you need to run Astuto. If you are on Linux, you may instead install Docker Engine, Docker CLI and then install the Docker Compose Plugin.

Installation

DockerHub image (fastest, for production)

  1. Create an empty folder
  2. Inside that folder, create a docker-compose.yml file with the following content:
version: '3.4'
services:
  db:
    image: postgres:14.5
    environment:
      POSTGRES_USER: yourpostgresusername
      POSTGRES_PASSWORD: yourpostgrespassword
    volumes:
      - dbdata:/var/lib/postgresql/data
  web:
    image: riggraz/astuto:latest
    environment:
      POSTGRES_USER: yourpostgresusername
      POSTGRES_PASSWORD: yourpostgrespassword
      BASE_URL: http://yourwebsite.com
      SECRET_KEY_BASE: yoursecretkeybase
    ports:
      - "3000:3000"
    depends_on:
      - db
    
volumes:
  dbdata:
  1. Edit the environment variables to fit your needs
  2. Run docker compose pull
  3. Run docker compose up
  4. You should now have a running instance of Astuto on port 3000. A default user account has been created with credentials email: [email protected], password: password.

Note: if you are on Linux and you encounter permission denied errors when running Docker commands, try to run them as administrator.

GitHub repository (for development)

Note: this installation method is suggested for developers and contributors. If you just want to deploy your Astuto instance or try it out, we recommend to follow the above DockerHub installation instructions.

See contributing guidelines.

Contributing

You are welcome to contribute:

Credits

Astuto logo created by Freepik Flaticon.

A huge thank you to all people who contributed:

astuto's People

Contributors

aitorroma avatar b-souty avatar codesmith-emmy avatar dependabot[bot] avatar liemvu avatar monodepth avatar riggraz avatar rubenwaterman avatar vin0uz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

astuto's Issues

update-and-run script returns `unauthorized: Incorrect username or password` for docker ruby image

When i want to launch the project, the following error happened :

โžœ script/docker-update-and-run.sh .
Starting update...
-> Docker image will be rebuilt if necessary
-> Database schema will be updated if necessary
-> Webpack will compile assets
db uses an image, skipping
Building web
Step 1/15 : FROM ruby:2.6.3
ERROR: Service 'web' failed to build: Get https://registry-1.docker.io/v2/library/ruby/manifests/2.6.3: unauthorized: incorrect username or password

Is it related to POSTGRES_USER and POSTGRES_PASSWORD ?

anny update on this core functionality?

Hi,

First of all, thank you for this great open source project. Do you have anny estimate on those?
-There must be a setting in user profile to enable/disable email notifications
-An email should be sent when a user gets a reply to a post/comment
-An email should be sent when a post update is published for a followed post

Those are very important things for users who add some feedback, to get back to them and give them an update on their feedback.

Thank You!

Improve Docker image

The Docker image of Astuto is working fine (and is finally available on the Docker Hub as well!), but it also has some problems.

  • The image size is big (610MB) and could probably be much smaller
  • The node version specified in the Dockerfile (v 11) is deprecated so it should be updated
  • yarn install shows some lines of warnings about unmet peer dependencies.
  • rails assets:precompile should be run in Dockerfile (hence assets should already be compiled in the image) and not in docker-entrypoint.sh

Moreover, running docker-compose up when pulling astuto from Docker Hub displays a warning message (WARNING: The B variable is not set. Defaulting to a blank string.).

Problem when installing Astuto via docker

Hello
I installed Astuto via docker-compose:
ast1

but when i try to access the website, it show me this:
ast2

and in the the console i got this error message:
ast3

Here are the logs:
ast4
ast5

Can you help please ?
Thanks

Manage multiple brands under one installation

It'd be great to use multiple brands/companies under one installation.

In the current state, we'd have to create a separate installation for Pomegranate company and another installation for Grape company, for example. Over time it becomes difficult to manage both installations. If someone has 5 or more side-projects, they're gonna be having a very tough time.

Adding the ability to create and switch between multiple companies under one installation will solve this (ideally a dropdown to select between companies on the top corners). Such a feature will also attract agencies and other bigger users who might potentially drive the project forward. Larger companies (as customers) may also contribute to the project financially and with development help as this is open source.

Bug on sign up when oauth providers are all disabled

This bug causes a 500 Internal Server Error and seems to happen when trying to sign up when there are 1+ oauth providers but they are all disabled.

The complete error message and information can be seen in the following image:

Screenshot 2022-10-22 at 12 44 58

The variable @o_auths is nil, probably because only enabled oauths are selected, and calling the .empty? method on it causes the error.

mimemagic gem is retired ?

Hello,

I had an issue when trying to install : apparently the mimemagic gem needs to be upgraded... I'm very new to ruby, so I'm not sure I can fix it by myself:

 > [ 9/12] RUN bundle install:
#14 0.653 The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
#14 4.334 Fetching gem metadata from https://rubygems.org/............
#14 6.231 Your bundle is locked to mimemagic (0.3.3), but that version could not be found
#14 6.231 in any of the sources listed in your Gemfile. If you haven't changed sources,
#14 6.231 that means the author of mimemagic (0.3.3) has removed it. You'll need to update
#14 6.231 your bundle to a version other than mimemagic (0.3.3) that hasn't been removed
#14 6.231 in order to install.

I tried to change the version directly in the lock file but it's not sufficient, one needs to run bundle update mimemagic - but I can't as I couldn't build the container...

Some way of custom sign up requirements?

Hi! First of all I wanted to say that this looks great! Neat and simple, perfect to track bugs and feature requests and looks great. And I'm sure once you add OAuth it should become a lot more popular, because from UX perspective I don't think many people will consider signing up just to post a bug report.

That said I have a feature request or a topic for discussion, because I know what I need but I'm not sure about the best way to implement it that would be of benefit to everyone.

So say I have a software product which I sell, and I would only like people who legitimately bought it to be able to post on bug tracker. I could do that either by requiring them to use their license key while signing up, or using the same email they used to purchase the app.

So, any ways you can think of implementing this? Something like external form validation? Sending POST to another server and if it gets True - validated, False - not?

I would really love to be able to use Astuto as bug tracker, but this thing may prevent me from doing so :(

Add OAuth 2 authentication

Forcing user to sign up with their email is time consuming and may discourage some of them to submit feedback. Hence, we should provide OAuth login with the most popular providers. To start, I think we should:

  • Setup OAuth 2
  • Configure Facebook, Google and GitHub providers to work with OAuth

API Documentation

Hi, first of all, thanks for this amazing open-source project.

Is there any plan on exposing the Astuto API to be consumed by an external application in order to allow feedback widgets to send votes / posts to Astuto dashboards?

Run error - relation "boards" does not exist at character 454

Running new install on Ubuntu 18.04 in Azure. Running sudo docker-compose up "$@", listener comes up at :3000. User tries to connect and gets "We're sorry but something went wrong" banner on page. Log shows-

web_1  | Environment is: production
web_1  | yarn install v1.22.4
web_1  | [1/4] Resolving packages...
web_1  | success Already up-to-date.
web_1  | Done in 0.67s.
web_1  | => Booting Puma
web_1  | => Rails 6.0.0 application starting in production
web_1  | => Run `rails server --help` for more startup options
web_1  | Puma starting in single mode...
web_1  | * Version 3.12.2 (ruby 2.6.3-p62), codename: Llamas in Pajamas
web_1  | * Min threads: 5, max threads: 5
web_1  | * Environment: production
web_1  | * Listening on tcp://0.0.0.0:3000
web_1  | Use Ctrl-C to stop
db_1   | 2020-04-10 19:58:29.943 UTC [31] ERROR:  relation "boards" does not exist at character 454
db_1   | 2020-04-10 19:58:29.943 UTC [31] STATEMENT:  SELECT a.attname, format_type(a.atttypid, a.atttypmod),
db_1   |               pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
db_1   |               c.collname, col_description(a.attrelid, a.attnum) AS comment
db_1   |          FROM pg_attribute a
db_1   |          LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
db_1   |          LEFT JOIN pg_type t ON a.atttypid = t.oid
db_1   |          LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
db_1   |         WHERE a.attrelid = '"boards"'::regclass
db_1   |           AND a.attnum > 0 AND NOT a.attisdropped
db_1   |         ORDER BY a.attnum
db_1   |

Error when building database

Hi there - No matter what I put into the env file for the below two items:

POSTGRES_USER=
POSTGRES_PASSWORD=

I keep getting the below error:

rake aborted!
ActiveRecord::NoDatabaseError: FATAL: password authentication failed for user "[email protected]"
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:50:in rescue in postgresql_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:33:in postgresql_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:879:in new_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:923:in checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:902:in try_to_checkout_new_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:863:in acquire_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:587:in checkout' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:431:in connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:1111:in retrieve_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_handling.rb:231:in retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_handling.rb:199:in connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/railties/databases.rake:250:in block (2 levels) in

'
/usr/local/bundle/gems/rake-12.3.3/exe/rake:27:in <top (required)>' /usr/local/bin/bundle:23:in load'
/usr/local/bin/bundle:23:in `'

Caused by:
PG::ConnectionBad: FATAL: password authentication failed for user "[email protected]"
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in initialize' /usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in new'
/usr/local/bundle/gems/pg-1.1.4/lib/pg.rb:56:in connect' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in postgresql_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:879:in new_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:923:in checkout_new_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:902:in try_to_checkout_new_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:863:in acquire_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:587:in checkout' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:431:in connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:1111:in retrieve_connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_handling.rb:231:in retrieve_connection'
/usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/connection_handling.rb:199:in connection' /usr/local/bundle/gems/activerecord-6.0.0/lib/active_record/railties/databases.rake:250:in block (2 levels) in

'
/usr/local/bundle/gems/rake-12.3.3/exe/rake:27:in <top (required)>' /usr/local/bin/bundle:23:in load'
/usr/local/bin/bundle:23:in `'
Tasks: TOP => db:version

New comment form should be autofocused on replies

If a user clicks on "Reply" to reply a comment, then a textarea appears but it is unfocused. It should automatically gain focus, in order to make it easier and faster to type comments.

On the other hand, the new comment form at the top level, i.e. the one used to comment a post, should not be autofocused when opening a post.

Problem when changing user password

Hello,
I have installed Astuto on an ubuntu serveur using your documentation (installation in a docker, with docker-compose and editing the .env file at the root folder of the application and nothing else). The application is in "production mode" but i tried in "development mode" and my problem is the same :

I noticed that when i try to edit a user in order to change his password the application return an error with a generic message :
We're sorry, but something went wrong.
If you are the application owner check the logs for more information.

When looking at the log file i can see this kind of information after a part that try to send an email to the user :

D, [2021-03-29T15:58:12.666850 #34] DEBUG -- : [c3bfa550-963e-4139-9050-dfdd1f796101] (0.2ms) ROLLBACK
I, [2021-03-29T15:58:12.667181 #34] INFO -- : [c3bfa550-963e-4139-9050-dfdd1f796101] Completed 500 Internal Server Error in 123ms (ActiveRecord: 2.5ms | Allocations: 3375)
F, [2021-03-29T15:58:12.667807 #34] FATAL -- : [c3bfa550-963e-4139-9050-dfdd1f796101]
[c3bfa550-963e-4139-9050-dfdd1f796101] Errno::EADDRNOTAVAIL (Cannot assign requested address - connect(2) for "localhost" port 25):
[c3bfa550-963e-4139-9050-dfdd1f796101]
[c3bfa550-963e-4139-9050-dfdd1f796101] app/controllers/admin/users_controller.rb:53:in `update'

I suppose i need to configure smtp server somewhere inside the container but i don't have find where to do it.

Could you please give me some information about that ?

Thank's

Need help starting Astuto

Hi, I have a problem trying to start Astuto on my Windows machine. Each time I am running the docker-run script it tells me that I need to set my .env file even though I filled everything according to the Required environment variables page.

web_1  | ENVIRONMENT is not set in .env file
web_1  | POSTGRES_USER is not set in .env file
web_1  | POSTGRES_PASSWORD is not set in .env file
web_1  | EMAIL_CONFIRMATION is not set in .env file
web_1  | APP_NAME is not set in .env file
web_1  | SHOW_LOGO is not set in .env file
web_1  | POSTS_PER_PAGE is not set in .env file
web_1  | You need to set these 7 variables in your .env file.
web_1  | See .env-example for a configuration example.
web_1  | Check out https://github.com/riggraz/astuto/wiki/Required-environment-variables
astuto_web_1 exited with code 2

I also did follow everything mentioned in the Installation for Windows users guide. Any help would be appreciated!

Add email notifications

Since Astuto strives to connect a business to its users, it is essential to provide a way to keep users notified about updates. Users should be able to follow posts they are interested in and receive an email when an update for that post is published.

I took some time to think about this feature which I believe is critical to Astuto, and the following checklist contains what I've come up with:

  • Users should be able to follow (i.e. to subscribe to) a post. In particular, users that publish a post will automatically be subscribed to that post. Of course, users subscribed to a post should also be able to unsubscribe from it at any time to stop receiving notifications.
  • There should be different "degrees" of subscription to a post, in the same way there are different "degrees" of watching in a GitHub's repository. In particular, I believe that a user should be able to follow either "all updates" for a post (which means any new comment, post update or status update for that post will be emailed to the user) or "important updates" (which means just post updates and status updates will be emailed to the user). The rationale behind this choice is that subscribing to all new comments to a post may be overwhelming to users that just want to be notified when there is an actual update in the status of the post.
  • A user should be notified if there is a reply to one of their comments.
  • Users should be able to disable all notifications if they so desire. This means that, even though they are subscribed to some posts or they get a reply in a comment, they won't receive any notification at all.

I'd love to hear your opinion on the topic. I tried to reach a balance between simplicity and complexity, i.e. I didn't want to come up with a too complex notification system that would have taken years to implement but at the same time I wanted it to be flexible. Let me know what you think about it.

@Vin0uz has started working on a pull request to implement email notifications a few days ago, so I'd like to hear his opinion as well. I hope that these changes, if they are approved by the community as well, won't force him to throw away the work he's done so far.

โš™๏ธ State of the project

Hey contributors and guests ๐Ÿ‘‹๐Ÿป

I've been trying to keep up with Astuto in the last few months but I don't have a lot of free time. And, when I do, I'm not that enthusiastic about working on it.

Anyway it is in my intentions to bring Astuto to a point in which it can be considered a useful and usable software that can be adopted by some users and run in production. It won't happen soon, but it'll happen.

A list of the features I will eventually add and I believe are essential to consider Astuto a well-rounded product are:

  • Implement OAuth2 login (#52)
  • Add internationalization
  • Improve installation experience (and also reduce size of Docker image (#58))
  • Add markdown support (#43)
  • Set up a free running demo

Of course if somebody wants to work on these features (or anything else as well) it's more than welcome! In the meanwhile I'll try to keep up with labeling issues and reviewing pull requests.

That's all for now. Bye and see you around the repo ๐Ÿ˜๐Ÿ‘‹๐Ÿป

Page <title> should reflect the page the user is in

Right now the site's title is always the site's name, as you can see from the application.html.erb file:

<title><%= Rails.application.name %></title>

It would be nice if the title changed with the page, e.g. when on board "Feature requests" it should be something like "Feature requests | App name", on a post "Post title | App name", and so on.

Friendly URLs for boards

Right now a board has the following URL: /boards/{board_id}, where board_id is a number that denotes the ID of the board.

It would be nice to have friendly boards URL like: /boards/{board_name}, where board_name is the name of the board.

Maybe this last approach can cause problems, for example if a user bookmarks the URL of a board (e.g. /boards/feature_requests) but then the administrators change the name of the board (e.g. from "feature requests" to "features", hence URL becomes /boards/features), so the bookmarked link wouldn't work anymore. This problem won't happen by using the board id or by using another field for composing the url, such as a slug field.

Honestly I don't think this is such a big problem, but I'd appreciate feedback about it.

Will there be a Python Version?

Finding ruby developers is a nightmare [atleast in my city]
every 1 in 5 developers know python

will there be a python edition?
or a package for django/wagtail?

Bug in updating post update flag

When an admin or moderator changes the flag "post update" of a comment (see image) of another user, they then become the author of the comment.

Screenshot 2022-03-10 at 15 11 06

Moreover, updating the "post update" flag also updates the comment datetime to current datetime, so the comments goes to the top of the list of comments (even though this is probably not the way it should work).

Add ordering filter to post list

Right now feedbacks in boards are ordered using a hotness algorithm that takes into consideration likes, comments and publishing time (see the code).

It would be nice to add a filter in the left sidebar to permit different ordering of posts. To begin with, I think that the following two ordering modes may be enough: "hottest" (that sorts posts using the hotness algorithm discussed above) and "latest" (that just sorts posts by publishing date).

Add new locales

First of all, thank you for your hard work on astuto.
I saw that you can add locales in the config-folder but I would like to know where exactly I could switch the language displayed to the user?

Thank you in advance.

Add combobox for status change in post update form

When a comment is marked as a post update (see image), a combobox to select the new status of the post should appear below the form.

Screenshot 2022-06-10 at 11 42 09

In this way, an admin can both publish a post update and set a new status at the same time. Obviously, it is not mandatory to update the status, so if the status combobox is not changed then no status changes are applied.

Replace Rspec.describe with describe ?

Rspec.describe is required when needing to bypass Domain Specific Language.

You may find here a hint of the DSL

Moreover, following DSL also permit to remove the type: parameter.
For example, RSpec.describe Board, type: :model do would become describe Board do

It might imply changes in spec/requests and spec/routing to make them more understandable ๐Ÿค”

Ask confirmation before discarding changes in site settings section

When managing boards or post statuses under the site settings menu, if the user is editing an entity and tries to leave the page, the system just discards the changes without asking. It'd nice to ask the user (only if they have some pending changes) if they really want to leave the page or not.

Error on mac m1

Hi,

It looks like I got that error on a Mac m1 trying to run docker compose locally.

I'll try in a gitpod workspace meanwhile.

Starting update...
-> Docker image will be rebuilt if necessary
-> Database schema will be updated if necessary
-> Webpack will compile assets
[+] Building 1.5s (18/18) FINISHED
 => [internal] load build definition from Dockerfile                                                              0.0s
 => => transferring dockerfile: 32B                                                                               0.0s
 => [internal] load .dockerignore                                                                                 0.0s
 => => transferring context: 2B                                                                                   0.0s
 => [internal] load metadata for docker.io/library/ruby:2.6.6                                                     1.2s
 => [auth] library/ruby:pull token for registry-1.docker.io                                                       0.0s
 => [internal] load build context                                                                                 0.0s
 => => transferring context: 34.57kB                                                                              0.0s
 => [ 1/12] FROM docker.io/library/ruby:2.6.6@sha256:ee53ac01b7ec7d8d42f53175ed33c39474d40d4af43cccc13cb3370cef5  0.0s
 => CACHED [ 2/12] RUN curl -sL https://deb.nodesource.com/setup_14.x | bash -                                    0.0s
 => CACHED [ 3/12] RUN apt-get update -qq && apt-get install -y nodejs postgresql-client                          0.0s
 => CACHED [ 4/12] RUN npm install -g yarn                                                                        0.0s
 => CACHED [ 5/12] RUN mkdir /astuto                                                                              0.0s
 => CACHED [ 6/12] WORKDIR /astuto                                                                                0.0s
 => CACHED [ 7/12] RUN gem install foreman                                                                        0.0s
 => CACHED [ 8/12] COPY Gemfile Gemfile.lock /astuto/                                                             0.0s
 => CACHED [ 9/12] RUN bundle install                                                                             0.0s
 => CACHED [10/12] COPY package.json yarn.lock /astuto/                                                           0.0s
 => CACHED [11/12] RUN yarn install --check-files                                                                 0.0s
 => [12/12] COPY . /astuto                                                                                        0.1s
 => exporting to image                                                                                            0.1s
 => => exporting layers                                                                                           0.1s
 => => writing image sha256:fea59211b2c33565038e2fdb2220f66406ea3317d581d423a0a29b668d63dccb                      0.0s
 => => naming to docker.io/library/astuto_web                                                                     0.0s

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
[+] Running 1/1
 โ ฟ Container astuto-db-1  Recreated                                                                               0.1s
[+] Running 1/1
 โ ฟ Container astuto-db-1  Started                                                                                 0.4s
yarn install v1.22.19
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-react > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-react > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-react > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-react > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/preset-react > @babel/plugin-transform-react-jsx > @babel/[email protected]" has unmet peer dependency "@babel/core@^7.0.0-0".
warning " > [email protected]" has unmet peer dependency "webpack@^2.0.0 || >= 3.0.0-rc.0 || ^3.0.0".
warning " > [email protected]" has unmet peer dependency "webpack@*".
warning " > [email protected]" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0".
warning "webpack-dev-server > [email protected]" has unmet peer dependency "webpack@^4.0.0".
[4/4] Building fresh packages...
Done in 275.33s.
[+] Running 1/0
 โ ฟ Container astuto-db-1  Running                                                                                 0.0s
Preparing database...

ERROR: It looks like you're trying to use Nokogiri as a precompiled native gem on a system with glibc < 2.17:

  /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so) - /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so

  If that's the case, then please install Nokogiri via the `ruby` platform gem:
      gem install nokogiri --platform=ruby
  or:
      bundle config set force_ruby_platform true

  Please visit https://nokogiri.org/tutorials/installing_nokogiri.html for more help.


ERROR: It looks like you're trying to use Nokogiri as a precompiled native gem on a system with glibc < 2.17:

  /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so) - /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so

  If that's the case, then please install Nokogiri via the `ruby` platform gem:
      gem install nokogiri --platform=ruby
  or:
      bundle config set force_ruby_platform true

  Please visit https://nokogiri.org/tutorials/installing_nokogiri.html for more help.


ERROR: It looks like you're trying to use Nokogiri as a precompiled native gem on a system with glibc < 2.17:

  /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so) - /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so

  If that's the case, then please install Nokogiri via the `ruby` platform gem:
      gem install nokogiri --platform=ruby
  or:
      bundle config set force_ruby_platform true

  Please visit https://nokogiri.org/tutorials/installing_nokogiri.html for more help.

rake aborted!
LoadError: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so) - /usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/2.6/nokogiri.so
/usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/extension.rb:7:in `require_relative'
/usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri/extension.rb:7:in `<main>'
/usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri.rb:10:in `require_relative'
/usr/local/bundle/gems/nokogiri-1.13.6-aarch64-linux/lib/nokogiri.rb:10:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/loofah-2.18.0/lib/loofah.rb:4:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/rails-html-sanitizer-1.4.3/lib/rails-html-sanitizer.rb:2:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/actionview-6.0.5/lib/action_view/helpers/sanitize_helper.rb:3:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/actionview-6.0.5/lib/action_view/helpers.rb:60:in `<module:Helpers>'
/usr/local/bundle/gems/actionview-6.0.5/lib/action_view/helpers.rb:6:in `<module:ActionView>'
/usr/local/bundle/gems/actionview-6.0.5/lib/action_view/helpers.rb:5:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/sprockets-rails-3.4.2/lib/sprockets/rails/context.rb:1:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/sprockets-rails-3.4.2/lib/sprockets/railtie.rb:10:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/sass-rails-5.1.0/lib/sass/rails/railtie.rb:3:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/sass-rails-5.1.0/lib/sass/rails.rb:11:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `block in require'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:291:in `load_dependency'
/usr/local/bundle/gems/activesupport-6.0.5/lib/active_support/dependencies.rb:324:in `require'
/usr/local/bundle/gems/sass-rails-5.1.0/lib/sass-rails.rb:1:in `<main>'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/usr/local/bundle/gems/bootsnap-1.12.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
/astuto/config/application.rb:7:in `<top (required)>'
/astuto/rakefile:4:in `require_relative'
/astuto/rakefile:4:in `<top (required)>'
/usr/local/bundle/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

Building via docker-update.sh fails

The error is:
=> ERROR [ 4/12] RUN npm install -g yarn

After fiddling around, I found that in dockerfile:
RUN apt-get update -qq && apt-get install -y nodejs npm postgresql-client

npm has to be installed explicitly to work correctly. Currently it just installs nodejs and postgresql.
Maybe consider fixing this if others are affected, too.

Password confirmation field doesn't do anything on user signup

A user can type anything on the "Password confirmation" field and, even though it's different to the provided password, the system will accept the submission and create a new user. It needs to be fixed in order to perform submission only if password and password confirmation are the same.

Screenshot 2022-07-25 at 15 41 16

.env file problem

i read https://github.com/riggraz/astuto/wiki/Required-environment-variables and set my .env file properly but i get this error

[+] Running 1/1
 - Container astuto-db-1  Started                                                                                  1.1s
ENVIRONMENT is not set in .env file
POSTGRES_USER is not set in .env file
POSTGRES_PASSWORD is not set in .env file
EMAIL_CONFIRMATION is not set in .env file
APP_NAME is not set in .env file
SHOW_LOGO is not set in .env file
POSTS_PER_PAGE is not set in .env file
You need to set these 7 variables in your .env file.
See .env-example for a configuration example.
Check out https://github.com/riggraz/astuto/wiki/Required-environment-variables

[process exited with code 2]

Default Admin account not work for me

Hello,
I have installed this app successfully in my local mac but the default credential [email protected]/password does not work for me.
I can sign up as new user but could not do anything.

BTW, really interested in this tool

Thanks,

Markdown support

Post description and comments should support markdown.

I believe markdown would be particularly useful to format hyperlinks, lists and quotes.

However, some markdown tags should not be parsed as usual (or not be parsed at all): for example a user should not be able to post a comment formatted with header ("#" character in markdown), because then the comment text would too big.

step 4 (windows)

/bin/bash: script/docker-update.sh: No such file or directory

[process exited with code 127]

"tenants" does not exist

Missing something obvious, but can't track it down.

astuto-db-1   | 2022-09-12 16:54:04.115 UTC [69] ERROR:  relation "tenants" does not exist at character 25
astuto-db-1   | 2022-09-12 16:54:04.115 UTC [69] STATEMENT:  SELECT "tenants".* FROM "tenants" ORDER BY "tenants"."id" ASC LIMIT $1

Get the above when I hit the newly provisioned site at servername:3000 deployed using compose/docker-run.sh. Nuked the volume and retried just in case one of the steps failed, but same situation. Feels like I need to bootstrap the config a bit for the initial tenant, but not sure where to do that?

Default Admin account not work for me

Hello,
I have installed this app successfully in my local mac but the default credential [email protected]/password does not work for me.
I can sign up as new user but could not do anything.

BTW, really interested in this tool

Thanks,

Improve installation process: create Docker image and upload to DockerHub

I'd like to try Astuto to capture internal user feedback, but find the installation rather unusual.
Docker images are not meant to be changed after being built neither should they be built on purpose for every deployment.
Better get rid of the .env file and have the environment variables injected into the container at startup by docker-compose. That way, you can share a universal (configuration-less) image to docker hub together with an example docker-compose file.
IT ops people can then download the docker-compose file, adapt it and start it, everything else will be handled by docker-compose.
Let me know if I can help in any way

enable ldap/ad authentication

Hey, great work on this project so far!
Would it be possible to allow authentication via LDAP/AD? We'll likely use this in production at a brain research centre if so.
Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.