rails devcenter cli app ruby-on-rails dns heroku

ruby on rails - devcenter - ¿Cómo agrego dominios a la aplicación Heroku usando el código de Ruby?



ruby on rails heroku (4)

La forma en que usualmente agregas dominios en Heroku es usando la API de Heroku a través de la gema Heroku . Hay un comando llamado heroku domains:add puedes invocar

$ heroku domains:add example.com

Como dije antes, el cliente llama a la API de Heroku. Puede extraer la información de la API de dominio de Heroku de la biblioteca y crear una secuencia de comandos personalizada que llame a la API de Heroku para agregar y eliminar un dominio de su aplicación.

Aquí está el código fuente del cliente .

Nota. Debido a que eres una "ingeniería inversa" y una API que parece no estar documentada, deberías pedirle a Heroku permiso para hacerlo, solo para asegurarte de que no estás creando algo en contra de sus TOS.

Estoy creando una aplicación que permite a los usuarios usar su propio dominio. ¿Qué método utilizo en mi aplicación Rails para registrar automáticamente su dominio elegido con Heroku? También necesitaré anular el registro si lo cambian.


La gema es de heroku y es el enfoque recomendado. Acabo de contactar a Heroku con la misma pregunta y esta fue la respuesta:

Necesitas decirle a Heroku sobre el dominio y dónde enrutarlo también. El CNAME le dice a DNS cómo obtener la solicitud a Heroku. Ahora debe decirle a Heroku a qué aplicación se lo debe enviar. Para ello, agrega el dominio a tu aplicación. En su caso, deberá ejecutar "dominios heroku: agregar my.domain.com" a su aplicación. También puede hacer esto programáticamente desde el interior de su aplicación a través de nuestra API. Consulte la joya de Heroku (http://github.com/heroku/heroku) para ver un ejemplo de cómo conectarse y usar la API.


Me puse en contacto con Heroku para hacer lo mismo y me indicaron su api y me dijeron que estaba bien usarlo de esa manera.

Me temo que no hay. Nuestra API está "documentada" solo por el código del cliente.

Puede encontrar nuestro grupo de google útil para obtener consejos de los miembros de la comunidad también: http://groups.google.com/group/heroku/

Oren

Aquí está el simple cómo hacerlo:

require ''heroku'' heroku = Heroku::Client.new(''heroku_username'', ''heroku_password'') heroku.add_domain(''heroku_app_name'', ''example.com'') heroku.remove_domain(''heroku_app_name'',''example.com'')

Ver la API para más.

Por supuesto que recomendaría no poner una contraseña de texto claro en su código. Algo bueno que puede hacer es usar las variables de entorno heroku para sacar sus contraseñas del código.

heroku = Heroku::Client.new(ENV[''HEROKU_USER''], ENV[''HEROKU_PASSWORD''])

y luego puedes establecer las variables de entorno en tu aplicación con

$> heroku config:add HEROKU_USER=''heroku_username'' $> heroku config:add HEROKU_PASSWORD=''heroku_password''

desde la linea de comando


La gema heroku ahora ha quedado obsoleta. Deberías usar la gema heroku.rb en su lugar. Los comandos han cambiado ligeramente, pero es esencialmente lo mismo.

require ''heroku-api'' heroku = Heroku::API.new(:api_key => API_KEY) # use API Key heroku = Heroku::API.new(:username => USERNAME, :password => PASSWORD) # use username and password heroku = Heroku::API.new(:headers => {''User-Agent'' => ''custom''}) # use custom header heroku.delete_domain(''app'', ''example.com'') # remove the ''example.com'' domain from the ''app'' app heroku.get_domains(''app'') # list configured domains for the ''app'' app heroku.post_domain(''app'', ''example.com'') # add ''example.com'' domain to the ''app'' app