Go to file
zen e11a37a8c2 save before devise update 2024-05-05 08:20:13 +02:00
src/autogen save before devise update 2024-05-05 08:20:13 +02:00
.gitignore first commit 2024-02-10 15:56:20 +01:00
Dockerfile first commit 2024-02-10 15:56:20 +01:00
README.MD boot baremetal ok 2024-04-21 02:06:03 +02:00
docker-compose.yml ajout liens edition 2024-04-26 13:27:32 +02:00

README.MD

REf

https://www.simplethread.com/how-to-create-a-new-rails-7-app-with-tailwind/ https://blog.saeloun.com/2021/11/17/rails-7-added-css-app-generator/

docker compose up -d docker compose exec -ti autogen bash

gem install rails gem update --system 3.5.6 rails new autogen --skip-active-record --skip-bundle --css bulma cd autogen/ Add to Gemfile : bundle add mongoid

change config/mongoid.yaml

development:
  # Configure available database clients. (required)
  clients:
    # Defines the default client. (required)
    default:
      # Mongoid can connect to a URI accepted by the driver:
      uri: mongodb://railszen:railszen@mongo:27017/railszen
      # Otherwise define the parameters separately.
      # This defines the name of the default database that Mongoid can connect to.
      # (required).
      # database: autodeploy_development
      # Provides the hosts the default client can connect to. Must be an array
      # of host:port pairs. (required)
      # hosts:
      #   - localhost:27017
      options:
        # Note that all options listed below are Ruby driver client options (the mongo gem).
        # Please refer to the driver documentation of the version of the mongo gem you are using
        # for the most up-to-date list of options.
        #
        # Change the default write concern. (default = { w: 1 })
        # write:
        #   w: 1

        # Change the default read preference. Valid options for mode are: :secondary,
        # :secondary_preferred, :primary, :primary_preferred, :nearest
        # (default: primary)
        # read:
        #   mode: :secondary_preferred
        #   tag_sets:
        #     - use: web

        # The name of the user for authentication.
        # user: 'user'

        # The password of the user for authentication.
        # password: 'password'

        # The user's database roles.
        # roles:
        #   - 'dbOwner'

        # Change the default authentication mechanism. Valid options are: :scram,
        # :mongodb_cr, :mongodb_x509, and :plain. Note that all authentication
        # mechanisms require username and password, with the exception of :mongodb_x509.
        # Default on mongoDB 3.0 is :scram, default on 2.4 and 2.6 is :plain.
        # auth_mech: :scram

        # The database or source to authenticate the user against.
        # (default: the database specified above or admin)
        # auth_source: admin

        # Force a the driver cluster to behave in a certain manner instead of auto-
        # discovering. Can be one of: :direct, :replica_set, :sharded. Set to :direct
        # when connecting to hidden members of a replica set.
        # connect: :direct

        # Changes the default time in seconds the server monitors refresh their status
        # via hello commands. (default: 10)
        # heartbeat_frequency: 10

        # The time in seconds for selecting servers for a near read preference. (default: 0.015)
        # local_threshold: 0.015

        # The timeout in seconds for selecting a server for an operation. (default: 30)
        # server_selection_timeout: 30

        # The maximum number of connections in the connection pool. (default: 5)
        # max_pool_size: 5

        # The minimum number of connections in the connection pool. (default: 1)
        # min_pool_size: 1

        # The time to wait, in seconds, in the connection pool for a connection
        # to be checked in before timing out. (default: 5)
        # wait_queue_timeout: 5

        # The time to wait to establish a connection before timing out, in seconds.
        # (default: 10)
        # connect_timeout: 10

        # How long to wait for a response for each operation sent to the
        # server. This timeout should be set to a value larger than the
        # processing time for the longest operation that will be executed
        # by the application. Note that this is a client-side timeout;
        # the server may continue executing an operation after the client
        # aborts it with the SocketTimeout exception.
        # (default: nil, meaning no timeout)
        # socket_timeout: 5

        # The name of the replica set to connect to. Servers provided as seeds that do
        # not belong to this replica set will be ignored.
        # replica_set: name

        # Whether to connect to the servers via ssl. (default: false)
        # ssl: true

        # The certificate file used to identify the connection against MongoDB.
        # ssl_cert: /path/to/my.cert

        # The private keyfile used to identify the connection against MongoDB.
        # Note that even if the key is stored in the same file as the certificate,
        # both need to be explicitly specified.
        # ssl_key: /path/to/my.key

        # A passphrase for the private key.
        # ssl_key_pass_phrase: password

        # Whether to do peer certification validation. (default: true)
        # ssl_verify: true

        # The file containing concatenated certificate authority certificates
        # used to validate certs passed from the other end of the connection.
        # ssl_ca_cert: /path/to/ca.cert
        
        # Whether to truncate long log lines. (default: true)
        # truncate_logs: true

  # Configure Mongoid specific options. (optional)
  options:
    # Application name that is printed to the mongodb logs upon establishing
    # a connection in server versions >= 3.4. Note that the name cannot
    # exceed 128 bytes. It is also used as the database name if the
    # database name is not explicitly defined. (default: nil)
    # app_name: MyApplicationName
    
    # Mark belongs_to associations as required by default, so that saving a
    # model with a missing belongs_to association will trigger a validation
    # error. (default: true)
    # belongs_to_required_by_default: true
    
    # Raise an exception when a field is redefined. (default: false)
    # duplicate_fields_exception: false
    
    # Include the root model name in json serialization. (default: false)
    # include_root_in_json: false

    # Include the _type field in serialization. (default: false)
    # include_type_for_serialization: false

    # Whether to join nested persistence contexts for atomic operations
    # to parent contexts by default. (default: false)
    # join_contexts: false

    # Set the Mongoid and Ruby driver log levels when Mongoid is not using
    # Ruby on Rails logger instance. (default: :info)
    # log_level: :info
    
    # Preload all models in development, needed when models use
    # inheritance. (default: false)
    # preload_models: false

    # Raise an error when performing a #find and the document is not found.
    # (default: true)
    raise_not_found_error: false

    # Raise an error when defining a scope with the same name as an
    # existing method. (default: false)
    # scope_overwrite_exception: false

    # Use ActiveSupport's time zone in time operations instead of
    # the Ruby default time zone. See the time zone section below for
    # further information. (default: true)
    # use_activesupport_time_zone: true

    # Return stored times as UTC. See the time zone section below for
    # further information. Most applications should not use this option.
    # (default: false)
    # use_utc: false

    # (Deprecated) In MongoDB 4.0 and earlier, set whether to create
    # indexes in the background by default. (default: false)
    # background_indexing: false

test:
  clients:
    default:
      uri: mongodb://railszen:railszen@mongo:27017/railszen
      # database: autodeploy_test
      # hosts:
      #   - localhost:27017
      options:
        read:
          mode: :primary
        max_pool_size: 1

bin/rails g mongoid:config edit config/database.yml and update database info config/application.rb add config.hosts << "autoinstall.msi.stef.lan"

bundle add hotwire-livereload --group development ./bin/rails generate controller Public index --no-helper --no-controller-specs

bin/rails g scaffold Script name:string stage:string lang:string content:text lock:boolean description:text bin/rails g scaffold Site name:string domain:string gateway:string nameserver:string network:string netmask:string

bin/rails s -b 0.0.0.0

Add devise

root@autogen:/usr/src/autogen# bundle add devise
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
root@autogen:/usr/src/autogen# rails generate devise:install
      create  config/initializers/devise.rb
      create  config/locales/devise.en.yml
===============================================================================

Depending on your application's configuration some manual setup may be required:

  1. Ensure you have defined default url options in your environments files. Here
     is an example of default_url_options appropriate for a development environment
     in config/environments/development.rb:

       config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

     In production, :host should be set to the actual host of your application.

     * Required for all applications. *

  2. Ensure you have defined root_url to *something* in your config/routes.rb.
     For example:

       root to: "home#index"

     * Not required for API-only Applications *

  3. Ensure you have flash messages in app/views/layouts/application.html.erb.
     For example:

       <p class="notice"><%= notice %></p>
       <p class="alert"><%= alert %></p>

     * Not required for API-only Applications *

  4. You can copy Devise views (for customization) to your app by running:

       rails g devise:views

     * Not required *

===============================================================================
root@autogen:/usr/src/autogen# rails generate devise User
      invoke  mongoid
      create    app/models/user.rb
      invoke    test_unit
      create      test/models/user_test.rb
      create      test/fixtures/users.yml
      insert    app/models/user.rb
      insert    app/models/user.rb
       route  devise_for :users

test save

{
    _id: ObjectId('65aab0004d003d00837c11b1'),
    login: 'stef',
    updated_at: ISODate('2024-02-07T20:21:48.310Z'),
    created_at: ISODate('2024-01-19T17:23:12.358Z'),
    name: 'me',
    sshpubkey: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC14slyp/JGv9iqLH4D94x+7v4PB/ec0YbLUPexdBip6OJaflbmp3s25WJ+oyO6U78Ee0jZUZt0TapYozyNx9UksP9JhirwKeNJnQSzSX0RKc6kQffoCgWHZmnzuoalEzaE7XyH+K8wP+hKi052ak9yR7XWDp6CG3V1Qpyq80VD1XNUzEL2xkITGQ6KojxrOJ1O0A9ISRu1t85Ul2N0syIylE2Ukvns1/NkArhC2g8N8T5XxPq39AUH78A3I0/kHowIzW9BpPVwim0tJTLSVNnVqq1NPG+gi1XvrXKzO/jb4kT01tnMG9vKcYqdH4g0y01ADEcCgMo1jGAjwq6gPLqT imported-openssh-key',
    encpassword: '$6$012345678$7Mu8dw7L8ye6pf8VYKGrTiHThM3LVnVnOkJNVz8DmVaK4YpAij7zbewaQ4/OYkClPHG1us0t7EshEI.dmayWs.'
}