Newly created node type is always disabled
Drupal base install uses this configuration to create the basic page content type. Try to modify the custom value just like the example underneath:



$type = array(
    'type' =&gt; 'page',
    'name' =&gt; st('Basic page'),
    'base' =&gt; 'node_content',
    'description' =&gt; st("Use &lt;em&gt;basic pages&lt;/em&gt; for your static content, such as an 'About us' page."),
    'custom' =&gt; true,
    'locked' =&gt; true,
    'modified' =&gt; true,
    'disabled' =&gt; false,
);


Edit

I've just checked the code of some Drupal core modules how they manage the creation of content types within code.

The Blog module defines the content type within the HOOK_node_info (just like you did). This to notify Drupal about the new type. The HOOK_install only add fields to the content type. The module also implement the HOOK_form for the content creation form and HOOK_view for the rendering.

// blog.install
function blog_install() {
  // Ensure the blog node type is available.
  node_types_rebuild();
  $types = node_type_get_types();
  node_add_body_field($types['blog']);
}

// blog.module
function blog_node_info() {
  return array(
    'blog' =&gt; array(
      'name' =&gt; t('Blog entry'),
      'base' =&gt; 'blog',
      'description' =&gt; t('Use for multi-user blogs. Every user gets a personal blog.'),
    )
  );
}


}